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 -
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 -
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
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 -
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 -
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 -
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 -
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 -
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 -
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 -
Make a couple of declarations const to save some data space.
Signed-off-by: Joe Perches
Signed-off-by: David S. Miller -
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 -
Now printing states of essential registers once fw hang has been detected.
Bumped up the driver version to 5.0.22Signed-off-by: Sritej Velaga
Signed-off-by: Anirban Chakraborty
Signed-off-by: David S. Miller -
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 -
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 -
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 -
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 -
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 -
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 -
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 -
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 -
Use RCU to avoid changing dst_entry refcount in fast path.
Signed-off-by: Eric Dumazet
Signed-off-by: David S. Miller -
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 -
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-updateThis patch is based on Stephen Hemminger's earlier patch on the same issue...
Signed-off-by: Sathya Perla
Signed-off-by: David S. Miller -
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 namesSigned-off-by: Sathya Perla
Signed-off-by: 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
... -
* '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 -
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 -
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 -
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 -
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 functionSigned-off-by: Keshava Munegowda
Signed-off-by: Samuel Ortiz -
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 -
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 -
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 -
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 -
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 -
Add regulator driver for AnalogicTech AAT2870.
Signed-off-by: Jin Park
Acked-by: Mark Brown
Signed-off-by: Samuel Ortiz -
Add backlight driver for AnalogicTech AAT2870.
Signed-off-by: Jin Park
Signed-off-by: Samuel Ortiz