02 Aug, 2011

4 commits

  • When assigning a NULL value to an RCU protected pointer, no barrier
    is needed. The rcu_assign_pointer, used to handle that but will soon
    change to not handle the special case.

    Convert all rcu_assign_pointer of NULL value.

    //smpl
    @@ expression P; @@

    - rcu_assign_pointer(P, NULL)
    + RCU_INIT_POINTER(P, NULL)

    //

    Signed-off-by: Stephen Hemminger
    Acked-by: Paul E. McKenney
    Signed-off-by: David S. Miller

    Stephen Hemminger
     
  • Update the code to handle some of the differences between
    RFC 3041 and RFC 4941, which obsoletes it. Also a couple
    of janitorial fixes.

    - Allow router advertisements to increase the lifetime of
    temporary addresses. This was not allowed by RFC 3041,
    but is specified by RFC 4941. It is useful when RA
    lifetimes are lower than TEMP_{VALID,PREFERRED}_LIFETIME:
    in this case, the previous code would delete or deprecate
    addresses prematurely.

    - Change the default of MAX_RETRY to 3 per RFC 4941.

    - Add a comment to clarify that the preferred and valid
    lifetimes in inet6_ifaddr are relative to the timestamp.

    - Shorten lines to 80 characters in a couple of places.

    Signed-off-by: Lorenzo Colitti
    Signed-off-by: David S. Miller

    Lorenzo Colitti
     
  • It adds device tree probe support for smsc911x driver.

    Signed-off-by: Shawn Guo
    Cc: Grant Likely
    Cc: Steve Glendinning
    Cc: David S. Miller
    Reviewed-by: Grant Likely
    Signed-off-by: David S. Miller

    Shawn Guo
     
  • David S. Miller
     

01 Aug, 2011

36 commits

  • This patch causes CCID-2 to check the Ack Ratio after reducing the congestion
    window. If the Ack Ratio is greater than the congestion window, it is
    reduced. This prevents timeouts caused by an Ack Ratio larger than the
    congestion window.

    In this situation, we choose to set the Ack Ratio to half the congestion window
    (or one if that's zero) so that if we loose one ack we don't trigger a timeout.

    Signed-off-by: Samuel Jero
    Acked-by: Gerrit Renker

    Samuel Jero
     
  • This patch fixes an issue where CCID-2 will not increase the congestion
    window for numerous RTTs after an idle period, application-limited period,
    or a loss once the algorithm is in Congestion Avoidance.

    What happens is that, when CCID-2 is in Congestion Avoidance mode, it will
    increase hc->tx_packets_acked by one for every packet and will increment cwnd
    every cwnd packets. However, if there is now an idle period in the connection,
    cwnd will be reduced, possibly below the slow start threshold. This will
    cause the connection to go into Slow Start. However, in Slow Start CCID-2
    performs this test to increment cwnd every second ack:

    ++hc->tx_packets_acked == 2

    Unfortunately, this will be incorrect, if cwnd previous to the idle period
    was larger than 2 and if tx_packets_acked was close to cwnd. For example:
    cwnd=50 and tx_packets_acked=45.

    In this case, the current code, will increment tx_packets_acked until it
    equals two, which will only be once tx_packets_acked (an unsigned 32-bit
    integer) overflows.

    My fix is simply to change that test for tx_packets_acked greater than or
    equal to two in slow start.

    Signed-off-by: Samuel Jero
    Acked-by: Gerrit Renker

    Samuel Jero
     
  • Add a check to prevent CCID-2 from increasing the cwnd greater than the
    Sequence Window.

    When the congestion window becomes bigger than the Sequence Window, CCID-2
    will attempt to keep more data in the network than the DCCP Sequence Window
    code considers possible. This results in the Sequence Window code issuing
    a Sync, thereby inducing needless overhead. Further, if this occurs at the
    sender, CCID-2 will never detect the problem because the Acks it receives
    will indicate no losses. I have seen this cause a drop of 1/3rd in throughput
    for a connection.

    Also add code to adjust the Sequence Window to be about 5 times the number of
    packets in the network (RFC 4340, 7.5.2) and to adjust the Ack Ratio so that
    the remote Sequence Window will hold about 5 times the number of packets in
    the network. This allows the congestion window to increase correctly without
    being limited by the Sequence Window.

    Signed-off-by: Samuel Jero
    Acked-by: Gerrit Renker

    Samuel Jero
     
  • This uses the new feature-negotiation framework to signal Ack Ratio changes,
    as required by RFC 4341, sec. 6.1.2.

    That raises some problems with CCID-2, which at the moment can not cope
    gracefully with Ack Ratios > 1. Since these issues are not directly related
    to feature negotiation, they are marked by a FIXME.

    Signed-off-by: Gerrit Renker
    Signed-off-by: Samuel Jero
    Acked-by: Ian McDonald

    Gerrit Renker
     
  • If a connection is in the OPEN state, remove feature negotiation Confirm
    options from the list of options after sending them once; as such options
    are NOT supposed to be retransmitted and are ONLY supposed to be sent in
    response to a Change option (RFC 4340 6.2).

    Signed-off-by: Samuel Jero
    Acked-by: Gerrit Renker

    Samuel Jero
     
  • This patch adds the receiver side and the (fast-path) activation part for
    dynamic changes of non-negotiable (NN) parameters in (PART)OPEN state.

    Signed-off-by: Gerrit Renker
    Signed-off-by: Samuel Jero
    Acked-by: Ian McDonald

    Gerrit Renker
     
  • In contrast to static feature negotiation at the begin of a connection, this
    patch introduces support for exchange of dynamically changing options.

    Such an update/exchange is necessary in at least two cases:
    * CCID-2's Ack Ratio (RFC 4341, 6.1.2) which changes during the connection;
    * Sequence Window values that, as per RFC 4340, 7.5.2, should be sent "as
    the connection progresses".

    Both are non-negotiable (NN) features, which means that no new capabilities
    are negotiated, but rather that changes in known parameters are brought
    up-to-date at either end.

    Thse characteristics are reflected by the implementation:
    * only NN options can be exchanged after connection setup;
    * an ack is scheduled directly after activation to speed up the update;
    * CCIDs may request changes to an NN feature even if a negotiation for that
    feature is already underway: this is required by CCID-2, where changes in
    cwnd necessitate Ack Ratio changes, such that the previous Ack Ratio (which
    is still being negotiated) would cause irrecoverable RTO timeouts (thanks
    to work by Samuel Jero).

    Signed-off-by: Gerrit Renker
    Signed-off-by: Samuel Jero
    Acked-by: Ian McDonald

    Gerrit Renker
     
  • Make a couple of declarations const to save some data space.

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

    Joe Perches
     
  • Add and use pr_fmt, pr_ and netdev_.
    Convert printks with %[n].[n]x to %nx to be shorter
    and clearer.
    Consolidate printks to use a single printk rather
    than continued printks without KERN_CONT.
    Removed unnecessary trailing periods.

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

    Joe Perches
     
  • Now printing states of essential registers once fw hang has been detected.
    Bumped up the driver version to 5.0.22

    Signed-off-by: Sritej Velaga
    Signed-off-by: Anirban Chakraborty
    Signed-off-by: David S. Miller

    Sritej Velaga
     
  • Place for gathering FW dump template has been moved to the FW restart path
    so that the driver can check if a newer FW version is available and in that case
    it replaces the existing FW dump template with the newer template.

    Signed-off-by: Sritej Velaga
    Signed-off-by: Anirban Chakraborty
    Signed-off-by: David S. Miller

    Sritej Velaga
     
  • Driver should not check for heart beat anymore when FW is hung, rather it
    should restart the FW.

    Signed-off-by: Sritej Velaga
    Signed-off-by: Anirban Chakraborty
    Signed-off-by: David S. Miller

    Sritej Velaga
     
  • o Added code to support FW reset without invoking the dump
    o Fixed the return value of the dump data size if dump is not available.

    Signed-off-by: Anirban Chakraborty
    Signed-off-by: David S. Miller

    Anirban Chakraborty
     
  • Driver was not generating the environment variable for the FW dump event correctly.
    Fix it by formatting it properly.

    Signed-off-by: Anirban Chakraborty
    Signed-off-by: David S. Miller

    Anirban Chakraborty
     
  • Change details:
    - Split the hw interface into common and asic specific to support new asic
    in the future.
    - Fix bfa_ioc_ct_isr_mode_set() to also include the case that we are already
    in the desired msix mode.

    Signed-off-by: Rasesh Mody
    Signed-off-by: David S. Miller

    Rasesh Mody
     
  • Change details:
    - ioc->cna is always set to 1 for eth functions, remove the check that
    asserts IOC is in CNA mode in bfa_ioc_firmware_lock() and
    bfa_ioc_firmware_unlock() in bfa_ioc_ct.c.

    Signed-off-by: Rasesh Mody
    Signed-off-by: David S. Miller

    Rasesh Mody
     
  • Even using percpu stats, we still hit tunnel dst_entry refcount in
    ip6_tnl_xmit2()

    Since we are in RCU locked section, we can use skb_dst_set_noref() and
    avoid these atomic operations, leaving dst shared on cpus.

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

    Eric Dumazet
     
  • ipv6_destopt_rcv() runs with rcu_read_lock(), so there is no need to
    take a temporay reference on dst_entry, even if skb is freed by
    ip6_parse_tlv()

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

    Eric Dumazet
     
  • Use RCU to avoid changing dst_entry refcount in fast path.

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

    Eric Dumazet
     
  • ICMP and ND are not fast path, but still we can avoid changing idev
    refcount, using RCU.

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

    Eric Dumazet
     
  • 64-bit stats in be2net are written/read as follows using the stats-sync
    interface for safe access in 32-bit archs:

    64-bit sync writer reader
    stats
    ------------------------------------------------------------------------------
    tx_stats tx_stats->sync be_xmit be_get_stats64,
    ethtool
    tx-compl tx_stats->sync_compl tx-compl-processing ethtool
    rx-stats rx_stats->sync rx-compl-processing be_get_stats64,
    ethtool,
    eqd-update

    This patch is based on Stephen Hemminger's earlier patch on the same issue...

    Signed-off-by: Sathya Perla
    Signed-off-by: David S. Miller

    Sathya Perla
     
  • In preparation for 64-bit stats interface, the following cleanups help
    streamline the code:
    1) made some more rx/tx stats stored by driver 64 bit
    2) made some HW stas (err/drop counters) stored in be_drv_stats 32 bit to
    keep the code simple as BE provides 32-bit counters only.
    3) removed duplication of netdev stats in ethtool
    4) removed some un-necessary stats and fixed some names

    Signed-off-by: Sathya Perla
    Signed-off-by: David S. Miller

    Sathya Perla
     
  • David S. Miller
     
  • * 'for-next' of git://git.kernel.org/pub/scm/linux/kernel/git/sameo/mfd-2.6: (46 commits)
    mfd: Fix mismatch in twl4030 mutex lock-unlock
    mfd: twl6030-pwm.c needs MODULE_LICENSE
    mfd: Fix the omap-usb-host clock API usage on usbhs_disable()
    mfd: Acknowledge WM8994 IRQs before reporting
    mfd: Acknowlege all WM831x IRQs before we handle them
    mfd: Avoid two assignments if failures happen in tps65910_i2c_probe
    regulator: Storing tps65912 error codes in u8
    mfd: Don't leak init_data in tps65910_i2c_probe
    regulator: aat2870: Add AAT2870 regulator driver
    backlight: Add AAT2870 backlight driver
    mfd: Add AAT2870 mfd driver
    mfd: Remove dead code from max8997-irq
    mfd: Move TPS55910 Kconfig option
    mfd: Fix missing stmpe kerneldoc
    mfd: Fix off-by-one value range checking for tps65912_i2c_write
    mfd: Add devices for WM831x clocking module
    mfd: Remove comp{1,2}_threshold sysfs entries in tps65911_comparator_remove
    mfd: Don't ask about the TPS65912 core driver in Kconfig
    mfd: Fix off by one in WM831x IRQ code
    mfd: Add tps65921 support from twl-core
    ...

    Linus Torvalds
     
  • * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/geert/linux-m68k:
    m68k/math-emu: Remove unnecessary code
    m68k/math-emu: Remove commented out old code
    m68k: Kill warning in setup_arch() when compiling for Sun3
    m68k/atari: Prefix GPIO_{IN,OUT} with CODEC_
    sparc: iounmap() and *_free_coherent() - Use lookup_resource()
    m68k/atari: Reserve some ST-RAM early on for device buffer use
    m68k/amiga: Chip RAM - Use lookup_resource()
    resources: Add lookup_resource()
    sparc: _sparc_find_resource() should check for exact matches
    m68k/amiga: Chip RAM - Offset resource end by CHIP_PHYSADDR
    m68k/amiga: Chip RAM - Use resource_size() to fix off-by-one error
    m68k/amiga: Chip RAM - Change chipavail to an atomic_t
    m68k/amiga: Chip RAM - Always allocate from the start of memory
    m68k/amiga: Chip RAM - Convert from printk() to pr_*()
    m68k/amiga: Chip RAM - Use tabs for indentation

    Linus Torvalds
     
  • Fix two recently introduced compile problems:

    Fix a typo in fs/nfs/pnfs.h

    Move the pnfs_blksize declaration outside the CONFIG_NFS_V4 section in
    struct nfs_server.

    Reported-by: Jens Axboe
    Signed-off-by: Trond Myklebust
    Signed-off-by: Linus Torvalds

    Trond Myklebust
     
  • A mutex is locked on entry into twl4030_madc_conversion().
    Immediate return on some error conditions leaves the
    mutex locked.

    This patch ensures that mutex is always unlocked before
    leaving the function.

    Signed-off-by: Sanjeev Premi
    Cc: Keerthy
    Signed-off-by: Samuel Ortiz

    Sanjeev Premi
     
  • twl6030_pwm: module license 'unspecified' taints kernel.

    Signed-off-by: Randy Dunlap
    Acked-by: Hemanth V
    Acked-by: Felipe Balbi
    Signed-off-by: Samuel Ortiz

    Randy Dunlap
     
  • usbhs_disable function was invoking clk_enable() instead of
    clk_disable(), thus only increasing the clock usage counter and
    preventing this particular clock from being ever turned off.
    Because of this, the power domain of omap4 the USB Host subsystem
    would never reach lower power states.This patch calls clk_disable()
    in usbhs_disable function

    Signed-off-by: Keshava Munegowda
    Signed-off-by: Samuel Ortiz

    Keshava Munegowda
     
  • This ensures we never have a window where we've handled an interrupt but
    not told the hardware about it.

    Signed-off-by: Mark Brown
    Signed-off-by: Samuel Ortiz

    Mark Brown
     
  • Ensure that we never have a window where we've handled an interrupt (and
    therefore need to be notified of new events) but haven't yet told the
    interrupt controller that this is the case (so any new events will be
    discarded).

    Signed-off-by: Mark Brown
    Signed-off-by: Samuel Ortiz

    Mark Brown
     
  • In drivers/mfd/tps65910.c:tps65910_i2c_probe() there's potential for a
    tiny optimization.

    We assign to init_data->irq and init_data->irq_base long before we
    need them, and there are two potential exits from the function before
    they are needed.

    Moving the assignments below these two potential exits means we
    completely avoid doing them in these two (failure) cases.

    Signed-off-by: Jesper Juhl
    Acked-by: Graeme Gregory
    Signed-off-by: Samuel Ortiz

    Jesper Juhl
     
  • get_ctrl_reg() returns -EINVAL so the error handling won't work here
    if reg is a u8.

    Signed-off-by: Dan Carpenter
    Signed-off-by: Samuel Ortiz

    Dan Carpenter
     
  • There are a couple of situations where we leak init_data in
    drivers/mfd/tps65910.c:tps65910_i2c_probe() - this patch should take
    care of them.

    Signed-off-by: Jesper Juhl
    Signed-off-by: Samuel Ortiz

    Jesper Juhl
     
  • Add regulator driver for AnalogicTech AAT2870.

    Signed-off-by: Jin Park
    Acked-by: Mark Brown
    Signed-off-by: Samuel Ortiz

    Jin Park
     
  • Add backlight driver for AnalogicTech AAT2870.

    Signed-off-by: Jin Park
    Signed-off-by: Samuel Ortiz

    Jin Park