- 12 12月, 2006 26 次提交
-
-
由 Gerrit Renker 提交于
This puts the window counter computation [RFC 4342, 8.1] into a separate function which is called whenever a new packet is ready for immediate transmission in ccid3_hc_tx_send_packet. Justification: The window counter update was previously computed after the packet was sent. This has two drawbacks, both fixed by this patch: 1) re-compute another timestamp almost directly after the packet was sent (expensive), 2) the CCVal for the window counter is needed at the instant the packet is sent. Further details: The initialisation of the window counter is left in the state NO_SENT, as before. The algorithm will do nothing if either RTT is initialised to 0 (which is ok) or if the RTT value remains below 4 microseconds (which is almost pathological). Signed-off-by: NGerrit Renker <gerrit@erg.abdn.ac.uk> Acked-by: NIan McDonald <ian.mcdonald@jandi.co.nz> Signed-off-by: NArnaldo Carvalho de Melo <acme@mandriva.com>
-
由 Gerrit Renker 提交于
CCID3 performance depends much on the accuracy of RTT samples. If RTT samples grow too large, performance can be catastrophically poor. To limit the amount of possible damage in such cases, the patch * introduces an upper limit which identifies a maximum `sane' RTT value; * uses a macro to enforce this upper limit. Using a macro was given preference, since it is necessary to identify the calling function in the warning message. Since exceeding this threshold identifies a critical condition, DCCP_CRIT is used and not DCCP_WARN. Many thanks to Ian McDonald for collaboration on this issue. Signed-off-by: NGerrit Renker <gerrit@erg.abdn.ac.uk> Acked-by: NIan McDonald <ian.mcdonald@jandi.co.nz> Signed-off-by: NArnaldo Carvalho de Melo <acme@mandriva.com>
-
由 Gerrit Renker 提交于
In both the sender and the receiver it is possible that the stored RTT value is accessed before an actual RTT estimate has been computed. This patch * initialises the sender RTT to 0 - the sender always accesses the RTT in ccid3_hc_tx_packet_sent - the RTT is further needed for the window counter algorithm * replaces the receiver initialisation of 5msec with 0 - which has the same effect and removes an `XXX' - the RTT value is needed in ccid3_hc_rx_packet_recv as rtt_prev Signed-off-by: NGerrit Renker <gerrit@erg.abdn.ac.uk> Acked-by: NIan McDonald <ian.mcdonald@jandi.co.nz> Signed-off-by: NArnaldo Carvalho de Melo <acme@mandriva.com>
-
由 Gerrit Renker 提交于
The function ccid3_hc_tx_insert_options only does a redundant no-op, as the operation DCCP_SKB_CB(skb)->dccpd_ccval = hctx->ccid3hctx_last_win_count; is already performed _unconditionally_ in ccid3_hc_tx_send_packet. Since there is further no current need for this function, it is removed entirely. Since furthermore, there is actually no present need for the entire interface function ccid_hc_tx_insert_options, it was decided to remove it also, to clean up the interface. Signed-off-by: NGerrit Renker <gerrit@erg.abdn.ac.uk> Signed-off-by: NArnaldo Carvalho de Melo <acme@mandriva.com>
-
由 Gerrit Renker 提交于
This adds a (debug) warning message which is triggered whenever a packet is discarded due to send failure. It also adds a conditional, so that an interruption during dccp_wait_for_ccid is not treated as a `BUG': the rationale is that interruptions are external, whereas bug warnings are concerned with the internals. Signed-off-by: NGerrit Renker <gerrit@erg.abdn.ac.uk> Acked-by: NIan McDonald <ian.mcdonald@jandi.co.nz> Signed-off-by: NArnaldo Carvalho de Melo <acme@mandriva.com>
-
由 Gerrit Renker 提交于
This is an optimisation to reduce CPU load. The received feedback is now only directed to the active CCID component, without requiring processing also by the inactive one. As a consequence, a similar test in ccid3.c is now redundant and is also removed. Justification: Currently DCCP works as a unidirectional service, i.e. a listening server is not at the same time a connecting client. As far as I can see, several modifications are necessary until that becomes possible. At the present time, received feedback is both fed to the rx/tx CCID modules. In unidirectional service, only one of these is active at any one time. Signed-off-by: NGerrit Renker <gerrit@erg.abdn.ac.uk> Acked-by: NIan McDonald <ian.mcdonald@jandi.co.nz> Signed-off-by: NArnaldo Carvalho de Melo <acme@mandriva.com>
-
由 Gerrit Renker 提交于
In migrating towards using the newer functions scaled_div/scaled_div32 for TFRC computations mapped from floating-point onto integer arithmetic, this completes the last stage of modifications. In particular, the overflow case for computing X_calc is circumvented by * breaking the computation into two stages * the first stage, res = (s*1E6)/R, cannot overflow due to use of u64 * in the second stage, res = (res*1E6)/f, overflow on u32 is avoided due to (i) returning UINT_MAX in this case (which is logically appropriate) and (ii) issuing a warning message into the system log (since very likely there is a problem somewhere else with the parameters) Lastly, all such scaling operations are now exported into tfrc.h, since actually this form of scaled computation is specific to TFRC and not to CCID3. Signed-off-by: NGerrit Renker <gerrit@erg.abdn.ac.uk> Acked-by: NIan McDonald <ian.mcdonald@jandi.co.nz> Signed-off-by: NArnaldo Carvalho de Melo <acme@mandriva.com>
-
由 Gerrit Renker 提交于
Problem: Most target types in the CCID3 code are u32, so subtle conversion errors can occur if signed time calculations yield negative results: the original values are lost in the conversion to unsigned, calculation errors go undetected. This patch therefore * sets all critical time types from unsigned to suseconds_t * avoids comparison between signed/unsigned via type-casting * provides ample warning messages in case time calculations are negative These warning messages can be removed at a later stage when the code has undergone more testing. Signed-off-by: NGerrit Renker <gerrit@erg.abdn.ac.uk> Acked-by: NIan McDonald <ian.mcdonald@jandi.co.nz> Signed-off-by: NArnaldo Carvalho de Melo <acme@mandriva.com>
-
由 Gerrit Renker 提交于
This simplifies the calculation of a value p for a given fval when the first loss interval is computed (RFC 3448, 6.3.1). It makes use of the two new functions scaled_div/scaled_div32 to provide overflow protection. Additionally, protection against divide-by-zero is extended - in this case the function will return the maximally possible value of p=100%. Background: The maximum fval, f(100%), is approximately 244, i.e. the scaled value of fval should never exceed 244E6, which fits easily into u32. The problem is the scaling by 10^6, since additionally R(TT) is in microseconds. This is resolved by breaking the division into two stages: the first stage computes fval=(s*10^6)/R, stores that into u64; the second stage computes fval = (fval*10^6)/X_recv and complains if overflow is reached for u32. This case is safe since the TFRC reverse-lookup routine then returns p=100%. Signed-off-by: NGerrit Renker <gerrit@erg.abdn.ac.uk> Acked-by: NIan McDonald <ian.mcdonald@jandi.co.nz> Signed-off-by: NArnaldo Carvalho de Melo <acme@mandriva.com>
-
由 Gerrit Renker 提交于
This replaces the remaining uses of usecs_div with scaled_div32, which internally uses 64bit division and produces a warning on overflow. Signed-off-by: NGerrit Renker <gerrit@erg.abdn.ac.uk> Acked-by: NIan McDonald <ian.mcdonald@jandi.co.nz> Signed-off-by: NArnaldo Carvalho de Melo <acme@mandriva.com>
-
由 Gerrit Renker 提交于
This patch * resolves a bug where packets smaller than 32/64 bytes resulted in sending rates of 0 * supports all sending rates from 1/64 bytes/second up to 4Gbyte/second * simplifies the present overflow problems in calculations Current sending rate X and the cached value X_recv of the receiver-estimated sending rate are both scaled by 64 (2^6) in order to * cope with low sending rates (minimally 1 byte/second) * allow upgrading to use a packets-per-second implementation of CCID 3 * avoid calculation errors due to integer arithmetic cut-off The patch implements a revised strategy from http://www.mail-archive.com/dccp@vger.kernel.org/msg01040.html The only difference with regard to that strategy is that t_ipi is already used in the calculation of the nofeedback timeout, which saves one division. Signed-off-by: NGerrit Renker <gerrit@erg.abdn.ac.uk> Acked-by: NIan McDonald <ian.mcdonald@jandi.co.nz> Signed-off-by: NArnaldo Carvalho de Melo <acme@mandriva.com>
-
由 Gerrit Renker 提交于
This fixes 1) a bug in the recomputation of the sending rate by the nofeedback timer when no feedback at all has so far been sent by the receiver: min_t was used instead of max_t, which is wrong (cf. RFC 3448, p. 10); 2) an error in the computation of larger initial windows: instead of min(... max()) (cf. RFC 4342, 5.), the code had used max(... max()). Signed-off-by: NGerrit Renker <gerrit@erg.abdn.ac.uk> Acked-by: NIan McDonald <ian.mcdonald@jandi.co.nz> Signed-off-by: NArnaldo Carvalho de Melo <acme@mandriva.com>
-
由 Gerrit Renker 提交于
This performs two optimisations for the recomputation of the sending rate. 1) Currently the target sending rate X_calc is recalculated whenever a) the nofeedback timer expires, or b) a feedback packet is received. In the (a) case, recomputing X_calc is redundant, since * the parameters p and RTT do not change in between the reception of feedback packets; * the parameter X_recv is either modified from received feedback or via the nofeedback timer; * a test (`p == 0') in the nofeedback timer avoids using a stale/undefined value of X_calc if p was previously 0. 2) The nofeedback timer now only recomputes a timestamp when p == 0. This is according to step (4) of [RFC 3448, 4.3] and avoids unnecessarily determining a timestamp. A debug statement about not updating X is also removed - it helps very little in debugging and just clutters the logs. Signed-off-by: NGerrit Renker <gerrit@erg.abdn.ac.uk> Acked-by: NIan McDonald <ian.mcdonald@jandi.co.nz> Signed-off-by: NArnaldo Carvalho de Melo <acme@mandriva.com>
-
由 Gerrit Renker 提交于
This patch follows a suggestion by Ian McDonald and ensures that in the current code the value of p can not exceed 100%. Such a value is illegal and would consequently cause a bug condition in tfrc_calc_x(). The receiver case is also tested, and a warning message is added. Signed-off-by: NGerrit Renker <gerrit@erg.abdn.ac.uk> Acked-by: NIan McDonald <ian.mcdonald@jandi.co.nz> Signed-off-by: NArnaldo Carvalho de Melo <acme@mandriva.com>
-
由 Ian McDonald 提交于
As Eddie Kohler points out the RFC is Proposed Standard not experimental. Also removed documentation about deprecated socket option. Signed-off-by: NIan McDonald <ian.mcdonald@jandi.co.nz> Signed-off-by: NGerrit Renker <gerrit@erg.abdn.ac.uk> Signed-off-by: NArnaldo Carvalho de Melo <acme@mandriva.com>
-
由 Ian McDonald 提交于
It simplifies waiting for the CCID module to signal that a packet is ready to be sent. Other simplifications flow on from this such as removing constants. As a result of this EAGAIN is not returned any more by dccp_wait_for_ccid (which would otherwise lead to unnecessarily discarding the packet in dccp_write_xmit). Signed-off-by: NIan McDonald <ian.mcdonald@jandi.co.nz> Signed-off-by: NGerrit Renker <gerrit@erg.abdn.ac.uk> Signed-off-by: NArnaldo Carvalho de Melo <acme@mandriva.com>
-
由 Andrew Morton 提交于
Acked-by: NHerbert Xu <herbert@gondor.apana.org.au> Signed-off-by: NDavid S. Miller <davem@davemloft.net>
-
由 Ralf Baechle 提交于
Signed-off-by: NRalf Baechle <ralf@linux-mips.org> Signed-off-by: NDavid S. Miller <davem@davemloft.net>
-
由 Randy Dunlap 提交于
Currently WAN router drivers can be built in-kernel while the register/unregister_wan_device interfaces are built as modules. This causes: drivers/built-in.o: In function `cycx_init': cycx_main.c:(.init.text+0x5c4b): undefined reference to `register_wan_device' drivers/built-in.o: In function `cycx_exit': cycx_main.c:(.exit.text+0x560): undefined reference to `unregister_wan_device' make: *** [.tmp_vmlinux1] Error 1 The problem is caused by tristate -> bool conversion (y or m => y), so convert WAN_ROUTER_DRIVERS to a tristate so that the correct dependency is preserved. Signed-off-by: NRandy Dunlap <randy.dunlap@oracle.com> Signed-off-by: NDavid S. Miller <davem@davemloft.net>
-
由 Herbert Xu 提交于
The SHA384 block size should be 128 bytes, not 96 bytes. This was spotted by Andrew Donofrio. Fortunately the block size isn't actually used anywhere so this typo has had no real impact. Signed-off-by: NHerbert Xu <herbert@gondor.apana.org.au>
-
由 Brice Goglin 提交于
Fix typo in 'EXPERIMENTAL' in config CC_STACKPROTECTOR in arch/x86_64/Kconfig. Signed-off-by: NBrice Goglin <brice@myri.com> Signed-off-by: NLinus Torvalds <torvalds@osdl.org>
-
由 David Howells 提交于
Make powerpc's __ilog2_u64() take a 64-bit argument. Signed-off-by: NDavid Howells <dhowells@redhat.com> Signed-off-by: NLinus Torvalds <torvalds@osdl.org>
-
git://git.kernel.org/pub/scm/linux/kernel/git/drzeus/mmc由 Linus Torvalds 提交于
* 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/drzeus/mmc: AT91 MMC update for 2.6.19 mmc: Change SDHCI iomem error to a warning mmc: fix "prev->state: 2 != TASK_RUNNING??" problem on SD/MMC card removal AT91 MMC 5 : Minor cleanups AT91 MMC 4 : Interrupt handler cleanup AT91 MMC 3 : Move global mci_clk variable AT91 MMC 2 : Use platform resources AT91 MMC 1: Pass host structure.
-
由 Linus Torvalds 提交于
* 'upstream-linus' of master.kernel.org:/pub/scm/linux/kernel/git/jgarzik/netdev-2.6: [PATCH] smc91x: Kill off excessive versatile hooks. [PATCH] myri10ge: update driver version to 1.1.0 [PATCH] myri10ge: fix big_bytes in case of vlan frames [PATCH] myri10ge: Full vlan frame in small_bytes [PATCH] myri10ge: drop contiguous skb routines [PATCH] myri10ge: switch to page-based skb [PATCH] myri10ge: add page-based skb routines [PATCH] myri10ge: indentation cleanups [PATCH] chelsio: working NAPI [PATCH] MACB: Use __raw register access [PATCH] MACB: Use struct delayed_work instead of struct work_struct [PATCH] ucc_geth: Initialize mdio_lock. [PATCH] ucc_geth: compilation error fixes
-
由 Linus Torvalds 提交于
We should not initialize rootfs before all the core initializers have run. So do it as a separate stage just before starting the regular driver initializers. Signed-off-by: NLinus Torvalds <torvalds@osdl.org>
-
由 Linus Torvalds 提交于
As reported by Andy Whitcroft, at least the SLES9 initrd build process depends on getting the kernel version from the kernel binary. It does that by simply trawling the binary and looking for the signature of the "linux_banner" string (the string "Linux version " to be exact. Which is really broken in itself, but whatever..) That got broken when the string was changed to allow /proc/version to change the UTS release information dynamically, and "get_kernel_version" thus returned "%s" (see commit a2ee8649: "[PATCH] Fix linux banner utsname information"). This just restores "linux_banner" as a static string, which should fix the version finding. And /proc/version simply uses a different string. To avoid wasting even that miniscule amount of memory, the early boot string should really be marked __initdata, but that just causes the same bug in SLES9 to re-appear, since it will then find other occurrences of "Linux version " first. Cc: Andy Whitcroft <apw@shadowen.org> Acked-by: NHerbert Poetzl <herbert@13thfloor.at> Cc: Andi Kleen <ak@suse.de> Cc: Andrew Morton <akpm@osdl.org> Cc: Steve Fox <drfickle@us.ibm.com> Acked-by: NOlaf Hering <olaf@aepfle.de> Signed-off-by: NLinus Torvalds <torvalds@osdl.org>
-
- 11 12月, 2006 14 次提交
-
-
由 Paul Mundt 提交于
This looks like a result of too many auto-merges. The CONFIG_ARCH_VERSATILE case was handled a total of 6 times. This kills 5 of them. Signed-off-by: NPaul Mundt <lethal@linux-sh.org> -- drivers/net/smc91x.h | 90 --------------------------------------------------- 1 file changed, 90 deletions(-) Signed-off-by: NJeff Garzik <jeff@garzik.org>
-
由 Brice Goglin 提交于
Update driver version to 1.1.0. Signed-off-by: NBrice Goglin <brice@myri.com> Signed-off-by: NJeff Garzik <jeff@garzik.org>
-
由 Brice Goglin 提交于
Fix sizing of big_bytes in the case of vlan frames. The 4 VLAN_HLEN bytes were omitted, leading to sizing the big buffer 4 bytes smaller than it should be. Due to how rx buffers are carved from pages, this was harmless for the common (9000, 1500) byte MTUs, but could lead to data corruption for some MTUs. Signed-off-by: NBrice Goglin <brice@myri.com> Signed-off-by: NJeff Garzik <jeff@garzik.org>
-
由 Brice Goglin 提交于
Receive full vlan frames into smalls when running with a jumbo MTU. Signed-off-by: NBrice Goglin <brice@myri.com> Signed-off-by: NJeff Garzik <jeff@garzik.org>
-
由 Brice Goglin 提交于
Drop the old routines that used the physically contigous skb now that we use the physical pages. And rename myri10ge_page_rx_done() to myri10ge_rx_done() as it was previously. Signed-off-by: NBrice Goglin <brice@myri.com> Signed-off-by: NJeff Garzik <jeff@garzik.org>
-
由 Brice Goglin 提交于
Switch to physical page skb, by calling the new page-based allocation routines and using myri10ge_page_rx_done(). Signed-off-by: NBrice Goglin <brice@myri.com> Signed-off-by: NJeff Garzik <jeff@garzik.org>
-
由 Brice Goglin 提交于
Add physical page skb allocation routines and page based rx_done, to be used by upcoming patches. Signed-off-by: NBrice Goglin <brice@myri.com> Signed-off-by: NJeff Garzik <jeff@garzik.org>
-
由 Brice Goglin 提交于
Indentation cleanups to synchronize to our tree which is automatically indent'ed. Signed-off-by: NBrice Goglin <brice@myri.com> Signed-off-by: NJeff Garzik <jeff@garzik.org>
-
由 Stephen Hemminger 提交于
This driver tries to enable/disable NAPI at runtime, but does so in an unsafe manner, and the NAPI interrupt handling is a mess. Replace it with a compile time selected NAPI implementation. Signed-off-by: NStephen Hemminger <shemminger@osdl.org> Signed-off-by: NJeff Garzik <jeff@garzik.org>
-
由 Haavard Skinnemoen 提交于
Since macb is a chip-internal device, use __raw_readl and __raw_writel instead of readl/writel. This will perform native-endian accesses, which is the right thing to do on both AVR32 and ARM devices. Signed-off-by: NHaavard Skinnemoen <hskinnemoen@atmel.com> Signed-off-by: NJeff Garzik <jeff@garzik.org>
-
由 Haavard Skinnemoen 提交于
The macb driver calls schedule_delayed_work() and friends, so we need to use a struct delayed_work along with it. The conversion was explained by David Howells on lkml Dec 5 2006: http://lkml.org/lkml/2006/12/5/269Signed-off-by: NHaavard Skinnemoen <hskinnemoen@atmel.com> Signed-off-by: NJeff Garzik <jeff@garzik.org>
-
由 Scott Wood 提交于
Signed-off-by: NScott Wood <scottwood@freescale.com> Signed-off-by: NJeff Garzik <jeff@garzik.org>
-
由 Scott Wood 提交于
Fix compilation failures when building the ucc_geth driver with spinlock debugging. Signed-off-by: NScott Wood <scottwood@freescale.com> Signed-off-by: NJeff Garzik <jeff@garzik.org>
-
由 Andrew Victor 提交于
The driver is usable on the newer SAM9 processors so replace all text references to AT91RM9200 with just AT91. The controller bug where all the words are byte-swapped is fixed on the AT91SAM9 processors. The byte-swapping work-around therefore only needs to be done if cpu_is_at91rm9200(). [Original patch from Wojtek Kaniewski] The AT91RM9200 and AT91SAM9260 processors support two MMC/SD slots - the slot which is connected is now passed via the platform_data and the correct slot selected in the AT91_MCI_SDCR register. The driver should not be calling at91_set_gpio_output() since the VCC pin should have already been configured as an output in the processor/board setup code. The driver should call at91_set_gpio_value(). Signed-off-by: NAndrew Victor <andrew@sanpeople.com> Signed-off-by: NPierre Ossman <drzeus@drzeus.cx>
-