commit 1eea281be89a8d1aa1c9022a02ebfe6310022b9a tree 8fc6fd6ee2f097018f6d991e75720bdc3af88756 parent bfc94b3cb3e228d47c93cfe0bd13ea4d3a330ef2 author Adrian Bunk Tue, 12 Sep 2006 20:02:10 +0200 committer Adrian Bunk Tue, 12 Sep 2006 20:02:10 +0200 Linux 2.6.16.29 commit bfc94b3cb3e228d47c93cfe0bd13ea4d3a330ef2 tree 3dc21d3dd761b2b50fd43dd8f4e24eab020a35a0 parent 226e6ea4df373b5f805e5acc81e2910d716ec77d author Adrian Bunk Sat, 09 Sep 2006 17:45:05 +0200 committer Adrian Bunk Sat, 09 Sep 2006 17:45:05 +0200 Linux 2.6.16.29-rc2 commit 226e6ea4df373b5f805e5acc81e2910d716ec77d tree 9a413048671cc57e3e1b4b0aa51d20cfc97553c7 parent aa95228d02569fe57affd0d5b966b2d547536571 author Neil Brown Sat, 09 Sep 2006 17:44:45 +0200 committer Adrian Bunk Sat, 09 Sep 2006 17:44:45 +0200 Have ext2 reject file handles with bad inode numbers early. This prevents bad inode numbers from triggering errors in ext2_get_inode. Signed-off-by: Neil Brown Signed-off-by: Adrian Bunk commit aa95228d02569fe57affd0d5b966b2d547536571 tree 72ac9ae1ada0d3c59abf1a6ad9fe76307fc056cb parent 47251e05f74783cc03f83f5e88016fc2cbd059f1 author Adrian Bunk Wed, 06 Sep 2006 19:55:27 +0200 committer Adrian Bunk Wed, 06 Sep 2006 19:55:27 +0200 Linux 2.6.16.29-rc1 commit 47251e05f74783cc03f83f5e88016fc2cbd059f1 tree 7c37533b2c6e6d1fc358ff45d69226ad90f369b6 parent 8b385946d47de12d8531c3e2abf69e5d5bff2720 author Alan Cox Wed, 06 Sep 2006 19:55:17 +0200 committer Adrian Bunk Wed, 06 Sep 2006 19:55:17 +0200 pci_ids.h: add some VIA IDE identifiers Signed-off-by: Alan Cox Signed-off-by: Adrian Bunk commit 8b385946d47de12d8531c3e2abf69e5d5bff2720 tree 1fb6b5c22bf26033cdd5e5dc6c9a4228dfd3d550 parent da56aea0bddc155f786594720ab91e36421cc51e author David S. Miller Wed, 06 Sep 2006 19:35:53 +0200 committer Adrian Bunk Wed, 06 Sep 2006 19:35:53 +0200 [PKTGEN]: Make sure skb->{nh,h} are initialized in fill_packet_ipv6() too. Mirror the bug fix from fill_packet_ipv4() Signed-off-by: David S. Miller Signed-off-by: Adrian Bunk commit da56aea0bddc155f786594720ab91e36421cc51e tree 6124b1c319ca9fd6c508ba67623615974d54fa3c parent c1646ad43e8273c4748ce2d4be2ec71f9329dbbd author Chen-Li Tien Wed, 06 Sep 2006 19:34:53 +0200 committer Adrian Bunk Wed, 06 Sep 2006 19:34:53 +0200 [PKTGEN]: Fix oops when used with balance-tlb bonding Signed-off-by: Chen-Li Tien Signed-off-by: David S. Miller Signed-off-by: Adrian Bunk commit c1646ad43e8273c4748ce2d4be2ec71f9329dbbd tree 9760f99e594cca5ce3e0e83aeed68f442732ff34 parent a3c94d77000442a64e0776174ad2a70e8aff1943 author Dean Nelson Wed, 06 Sep 2006 19:25:46 +0200 committer Adrian Bunk Wed, 06 Sep 2006 19:25:46 +0200 ia64 SGI-SN2: fix silent data corruption caused by XPC Jack Steiner identified a problem where XPC can cause a silent data corruption. On module load, the placement may cause the xpc_remote_copy_buffer to span two physical pages. DMA transfers are done to the start virtual address translated to physical. This patch changes the buffer from a statically allocated buffer to a kmalloc'd buffer. Dean Nelson reviewed this before posting. I have tested it in the configuration that was showing the memory corruption and verified it works. I also added a BUG_ON statement to help catch this if a similar situation is encountered. Signed-off-by: Robin Holt Signed-off-by: Dean Nelson Signed-off-by: Jack Steiner Signed-off-by: Tony Luck Signed-off-by: Adrian Bunk commit a3c94d77000442a64e0776174ad2a70e8aff1943 tree 09edbf3669265e4793838a3ecdac700404d58ce2 parent eebf6e7fd7915da8ad18380107243a1faa7a8c20 author YOSHIFUJI Hideaki Wed, 06 Sep 2006 16:30:02 +0200 committer Adrian Bunk Wed, 06 Sep 2006 16:30:02 +0200 [IPV6]: Fix kernel OOPs when setting sticky socket options. Bug noticed by Remi Denis-Courmont . Signed-off-by: YOSHIFUJI Hideaki Signed-off-by: David S. Miller Signed-off-by: Adrian Bunk commit eebf6e7fd7915da8ad18380107243a1faa7a8c20 tree bd33cf1e81a271afad1e7d3a6b12bb42ee65df6e parent 397f9fde9b9a9149be2249e1439ccb3a74b85594 author Sonny Rao Wed, 06 Sep 2006 16:23:48 +0200 committer Adrian Bunk Wed, 06 Sep 2006 16:23:48 +0200 idr: fix race in idr code I ran into a bug where the kernel died in the idr code: cpu 0x1d: Vector: 300 (Data Access) at [c000000b7096f710] pc: c0000000001f8984: .idr_get_new_above_int+0x140/0x330 lr: c0000000001f89b4: .idr_get_new_above_int+0x170/0x330 sp: c000000b7096f990 msr: 800000000000b032 dar: 0 dsisr: 40010000 current = 0xc000000b70d43830 paca = 0xc000000000556900 pid = 2022, comm = hwup 1d:mon> t [c000000b7096f990] c0000000000d2ad8 .expand_files+0x2e8/0x364 (unreliable) [c000000b7096faa0] c0000000001f8bf8 .idr_get_new_above+0x18/0x68 [c000000b7096fb20] c00000000002a054 .init_new_context+0x5c/0xf0 [c000000b7096fbc0] c000000000049dc8 .copy_process+0x91c/0x1404 [c000000b7096fcd0] c00000000004a988 .do_fork+0xd8/0x224 [c000000b7096fdc0] c00000000000ebdc .sys_clone+0x5c/0x74 [c000000b7096fe30] c000000000008950 .ppc_clone+0x8/0xc -- Exception: c00 (System Call) at 000000000fde887c SP (f8b4e7a0) is in userspace Turned out to be a race-condition and NULL ptr deref, here's my fix: Users of the idr code are supposed to call idr_pre_get without locking, so the idr code must serialize itself with respect to layer allocations. However, it fails to do so in an error path in idr_get_new_above_int(). I added the missing locking to fix this. Signed-off-by: Sonny Rao Signed-off-by: Adrian Bunk commit 397f9fde9b9a9149be2249e1439ccb3a74b85594 tree 3977fef0dd142c547a1618a9e5b4385a88d6901a parent 8c0e503b81fa85854fe2284957877b0321495096 author Christian Borntraeger Wed, 06 Sep 2006 16:01:43 +0200 committer Adrian Bunk Wed, 06 Sep 2006 16:01:43 +0200 fix misoptimization in futex unqueue_me This patch adds a barrier() in futex unqueue_me to avoid aliasing of two pointers. On my s390x system I saw the following oops: Unable to handle kernel pointer dereference at virtual kernel address 0000000000000000 Oops: 0004 [#1] CPU: 0 Not tainted Process mytool (pid: 13613, task: 000000003ecb6ac0, ksp: 00000000366bdbd8) Krnl PSW : 0704d00180000000 00000000003c9ac2 (_spin_lock+0xe/0x30) Krnl GPRS: 00000000ffffffff 000000003ecb6ac0 0000000000000000 0700000000000000 0000000000000000 0000000000000000 000001fe00002028 00000000000c091f 000001fe00002054 000001fe00002054 0000000000000000 00000000366bddc0 00000000005ef8c0 00000000003d00e8 0000000000144f91 00000000366bdcb8 Krnl Code: ba 4e 20 00 12 44 b9 16 00 3e a7 84 00 08 e3 e0 f0 88 00 04 Call Trace: ([<0000000000144f90>] unqueue_me+0x40/0xe4) [<0000000000145a0c>] do_futex+0x33c/0xc40 [<000000000014643e>] sys_futex+0x12e/0x144 [<000000000010bb00>] sysc_noemu+0x10/0x16 [<000002000003741c>] 0x2000003741c The code in question is: static int unqueue_me(struct futex_q *q) { int ret = 0; spinlock_t *lock_ptr; /* In the common case we don't take the spinlock, which is nice. */ retry: lock_ptr = q->lock_ptr; if (lock_ptr != 0) { spin_lock(lock_ptr); /* * q->lock_ptr can change between reading it and * spin_lock(), causing us to take the wrong lock. This * corrects the race condition. [...] and my compiler (gcc 4.1.0) makes the following out of it: 00000000000003c8 : 3c8: eb bf f0 70 00 24 stmg %r11,%r15,112(%r15) 3ce: c0 d0 00 00 00 00 larl %r13,3ce 3d0: R_390_PC32DBL .rodata+0x2a 3d4: a7 f1 1e 00 tml %r15,7680 3d8: a7 84 00 01 je 3da 3dc: b9 04 00 ef lgr %r14,%r15 3e0: a7 fb ff d0 aghi %r15,-48 3e4: b9 04 00 b2 lgr %r11,%r2 3e8: e3 e0 f0 98 00 24 stg %r14,152(%r15) 3ee: e3 c0 b0 28 00 04 lg %r12,40(%r11) /* write q->lock_ptr in r12 */ 3f4: b9 02 00 cc ltgr %r12,%r12 3f8: a7 84 00 4b je 48e /* if r12 is zero then jump over the code.... */ 3fc: e3 20 b0 28 00 04 lg %r2,40(%r11) /* write q->lock_ptr in r2 */ 402: c0 e5 00 00 00 00 brasl %r14,402 404: R_390_PC32DBL _spin_lock+0x2 /* use r2 as parameter for spin_lock */ So the code becomes more or less: if (q->lock_ptr != 0) spin_lock(q->lock_ptr) instead of if (lock_ptr != 0) spin_lock(lock_ptr) Which caused the oops from above. After adding a barrier gcc creates code without this problem: [...] (the same) 3ee: e3 c0 b0 28 00 04 lg %r12,40(%r11) 3f4: b9 02 00 cc ltgr %r12,%r12 3f8: b9 04 00 2c lgr %r2,%r12 3fc: a7 84 00 48 je 48c 400: c0 e5 00 00 00 00 brasl %r14,400 402: R_390_PC32DBL _spin_lock+0x2 As a general note, this code of unqueue_me seems a bit fishy. The retry logic of unqueue_me only works if we can guarantee, that the original value of q->lock_ptr is always a spinlock (Otherwise we overwrite kernel memory). We know that q->lock_ptr can change. I dont know what happens with the original spinlock, as I am not an expert with the futex code. Signed-off-by: Christian Borntraeger Acked-by: Ingo Molnar Signed-off-by: Adrian Bunk commit 8c0e503b81fa85854fe2284957877b0321495096 tree 8e0e17d29d82d797887f04a8f597c9a07742aa52 parent 97bc8f754363d1f0558ecf3addc55ea4710cfdb2 author maximilian attems Wed, 06 Sep 2006 15:39:02 +0200 committer Adrian Bunk Wed, 06 Sep 2006 15:39:02 +0200 [SERIAL] icom: select FW_LOADER The icom driver uses request_firmware() and thus needs to select FW_LOADER. Signed-off-by: maximilian attems Signed-off-by: Olaf Hering Signed-off-by: Adrian Bunk commit 97bc8f754363d1f0558ecf3addc55ea4710cfdb2 tree 1719d722948b772f2e2cfabe026888db9c093d90 parent 809f5560b0718ab0e0e8ba6eabc59ed21db31673 author Alan Cox Wed, 06 Sep 2006 15:07:59 +0200 committer Adrian Bunk Wed, 06 Sep 2006 15:07:59 +0200 Missing PCI id update for VIA IDE Signed-off-by: Adrian Bunk commit 809f5560b0718ab0e0e8ba6eabc59ed21db31673 tree 73fb5791929cbfb136be8c2aabd782fd2207d165 parent 725eb3f2eb34ff77ce02c50f79c6912e9476cbf5 author Sridhar Samudrala Tue, 05 Sep 2006 21:59:11 +0200 committer Adrian Bunk Tue, 05 Sep 2006 21:59:11 +0200 Fix sctp_primitive_ABORT() call in sctp_close() With the recent fix, the callers of sctp_primitive_ABORT() need to create an ABORT chunk and pass it as an argument rather than msghdr that was passed earlier. Adrian Bunk: Ported to 2.6.16. Signed-off-by: Sridhar Samudrala Signed-off-by: David S. Miller Signed-off-by: Adrian Bunk commit 725eb3f2eb34ff77ce02c50f79c6912e9476cbf5 tree 510568516183bc6d614bbd14482da644398371b5 parent 5491089121757e72380f6725d3a49a63e97b31d8 author Remy Bruno Tue, 05 Sep 2006 21:40:12 +0200 committer Adrian Bunk Tue, 05 Sep 2006 21:40:12 +0200 ALSA: RME HDSP - fixed proc interface (missing {}) Signed-off-by: Jaroslav Kysela Acked-by: Takashi Iwai Signed-off-by: Adrian Bunk commit 5491089121757e72380f6725d3a49a63e97b31d8 tree b12a595959395e0473f16bd3e58050968c0979a0 parent f05a9cc4176c1432bca85b184bcacea7d83cf84e author Takashi Iwai Tue, 05 Sep 2006 21:39:12 +0200 committer Adrian Bunk Tue, 05 Sep 2006 21:39:12 +0200 ALSA: hda-intel - Fix race in remove Call iounmap after free_irq to avoid invalid accesses in the shared irq. The patch is taken from https://bugzilla.novell.com/show_bug.cgi?id=167869 Signed-off-by: Takashi Iwai Signed-off-by: Adrian Bunk commit f05a9cc4176c1432bca85b184bcacea7d83cf84e tree 9a19bf71db7faee51050c7090e2858a774434033 parent f29766600cfbc919041b4b25be7a4eee3a241694 author Takashi Iwai Tue, 05 Sep 2006 21:38:52 +0200 committer Adrian Bunk Tue, 05 Sep 2006 21:38:52 +0200 ALSA: Fix workaround for AD1988A rev2 codec Fix the workaround for AD1988A rev2 codec not to apply to AD1988B codec chips. Signed-off-by: Takashi Iwai Signed-off-by: Jaroslav Kysela Signed-off-by: Adrian Bunk commit f29766600cfbc919041b4b25be7a4eee3a241694 tree 32fa812cc1ddd917e77dcc0165640afb3445195e parent 62dbd54a494cbf80fe70bbe506a9f23810cd7b5c author Takashi Iwai Tue, 05 Sep 2006 21:38:23 +0200 committer Adrian Bunk Tue, 05 Sep 2006 21:38:23 +0200 ALSA: Fix model for HP dc7600 Changed the assigned model for HP dc7600 with ALC260 codec to match better with the actual I/O assignment. Patch taken from ALSA bug#2157. Signed-off-by: Takashi Iwai Signed-off-by: Adrian Bunk commit 62dbd54a494cbf80fe70bbe506a9f23810cd7b5c tree f1c187079bf986a60804f13555bbf19d5105fdcd parent 9d6c9b170e5ffb54ee6697dd8e8e583121210e5b author Takashi Iwai Tue, 05 Sep 2006 21:37:57 +0200 committer Adrian Bunk Tue, 05 Sep 2006 21:37:57 +0200 ALSA: Fix missing array terminators in AD1988 codec support Fixed the missing array terminators in AD1988 codec support code. Signed-off-by: Takashi Iwai Signed-off-by: Jaroslav Kysela Signed-off-by: Adrian Bunk commit 9d6c9b170e5ffb54ee6697dd8e8e583121210e5b tree 66b8b01f7020e5c2ac9c767d41935617e95de031 parent ac0f6b9e16a03ccfd2762eac434df0c31e092dab author Takashi Iwai Tue, 05 Sep 2006 21:37:16 +0200 committer Adrian Bunk Tue, 05 Sep 2006 21:37:16 +0200 ALSA: Fix a deadlock in snd-rtctimer Fix an occasional deadlock occuring with snd-rtctimer driver, added irqsave to the lock in tasklet (ALSA bug#952). Signed-off-by: Takashi Iwai Signed-off-by: Jaroslav Kysela Signed-off-by: Adrian Bunk commit ac0f6b9e16a03ccfd2762eac434df0c31e092dab tree 3ffb0cfd18edf04ac22dff0a56e372afb122d1af parent 6f4c2c2db705ba2b140773a07cbb57d226f2ba5a author Takashi Iwai Tue, 05 Sep 2006 21:34:57 +0200 committer Adrian Bunk Tue, 05 Sep 2006 21:34:57 +0200 ALSA: au88x0 - Fix 64bit address of MPU401 MMIO port Fix 64bit address of MPU401 MMIO port on au88x0 chip. Signed-off-by: Takashi Iwai Signed-off-by: Adrian Bunk commit 6f4c2c2db705ba2b140773a07cbb57d226f2ba5a tree 1e491afb10803c8eebbd9496acf213c3081e5d99 parent f52a2e7631c511197c423277d3a6ba94eabc46ab author Willy Tarreau Thu, 31 Aug 2006 22:02:56 +0200 committer Adrian Bunk Thu, 31 Aug 2006 22:02:56 +0200 ethtool: fix oops in ethtool_set_pauseparam() The function pointers which were checked were for their get_* counterparts. Typically a copy-paste typo. Signed-off-by: Willy Tarreau Acked-by: Jeff Garzik Acked-by: David Miller Signed-off-by: Adrian Bunk commit f52a2e7631c511197c423277d3a6ba94eabc46ab tree 657764f22aa225930af99c84d43ff8e86ac3cb6b parent 26c0273b7f4b1510eec4f0f92d19971dc0c2fd67 author Herbert Xu Thu, 31 Aug 2006 21:59:19 +0200 committer Adrian Bunk Thu, 31 Aug 2006 21:59:19 +0200 ETHTOOL: Fix UFO typo The function ethtool_get_ufo was referring to ETHTOOL_GTSO instead of ETHTOOL_GUFO. Signed-off-by: Herbert Xu Signed-off-by: David S. Miller Acked-by: Matthew Wilcox Signed-off-by: Adrian Bunk commit 26c0273b7f4b1510eec4f0f92d19971dc0c2fd67 tree d3de17af137b40fda19f82eb4198283d43f4d115 parent cbca4f2e2cba4f8d4482d6ddd21199b71c2476b0 author Kirill Korotaev Wed, 30 Aug 2006 22:55:59 +0200 committer Adrian Bunk Wed, 30 Aug 2006 22:55:59 +0200 fix struct file leakage 2.6.16 leaks like hell. While testing, I found massive filp leakage (reproduced in openvz) in the bowels of namei.c. Signed-off-by: Alexey Kuznetsov Signed-off-by: Adrian Bunk commit cbca4f2e2cba4f8d4482d6ddd21199b71c2476b0 tree 64e843afb1583b2c55e07aaeb89541d059d5633a parent 06e346507acbf0feb78abf2179a7d46b7114690a author Eric Sandeen Wed, 30 Aug 2006 18:01:00 +0200 committer Adrian Bunk Wed, 30 Aug 2006 18:01:00 +0200 Have ext3 reject file handles with bad inode numbers early blatantly ripped off from Neil Brown's ext2 patch. Signed-off-by: Eric Sandeen Acked-by: "Theodore Ts'o" Signed-off-by: Adrian Bunk commit 06e346507acbf0feb78abf2179a7d46b7114690a tree b107f8bc09a89f6baeb3cf2249e89a22903542e9 parent 439fc6b301c680195fdb18caa5cebdbdf2f9d670 author Neil Brown Wed, 30 Aug 2006 17:58:44 +0200 committer Adrian Bunk Wed, 30 Aug 2006 17:58:44 +0200 ext3: avoid triggering ext3_error on bad NFS file handle The inode number out of an NFS file handle gets passed eventually to ext3_get_inode_block() without any checking. If ext3_get_inode_block() allows it to trigger an error, then bad filehandles can have unpleasant effect - ext3_error() will usually cause a forced read-only remount, or a panic if `errors=panic' was used. So remove the call to ext3_error there and put a matching check in ext3/namei.c where inode numbers are read off storage. Andrew Morton fixed an off-by-one error. Dann Frazier ported the patch to 2.6.16. Signed-off-by: Neil Brown Signed-off-by: Adrian Bunk commit 439fc6b301c680195fdb18caa5cebdbdf2f9d670 tree e443083de75bef5ffb82c563447a4265887b3092 parent 8117018ce0f258c9189f6f3c29b0daf7a9942252 author Alexey Dobriyan Wed, 30 Aug 2006 17:31:15 +0200 committer Adrian Bunk Wed, 30 Aug 2006 17:31:15 +0200 eicon: fix define conflict with ptrace * MODE_MASK is unused in eicon driver. * Conflicts with a ptrace stuff on arm. drivers/isdn/hardware/eicon/divasync.h:259:1: warning: "MODE_MASK" redefined include2/asm/ptrace.h:48:1: warning: this is the location of the previous definition Signed-off-by: Alexey Dobriyan Acked-by: Karsten Keil Acked-by: Armin Schindler Signed-off-by: Adrian Bunk commit 8117018ce0f258c9189f6f3c29b0daf7a9942252 tree 9c0b93cba4c44b5d14a2cd84c165f430dae02668 parent d441c8439442d5a554285056b31389ebd3024353 author Patrick McHardy Wed, 30 Aug 2006 17:25:57 +0200 committer Adrian Bunk Wed, 30 Aug 2006 17:25:57 +0200 ip_tables: fix table locking in ipt_do_table table->private might change because of ruleset changes, don't use it without holding the lock. Signed-off-by: Patrick McHardy Signed-off-by: Adrian Bunk commit d441c8439442d5a554285056b31389ebd3024353 tree 0c0f53ee23af1f45947156ac38135a12d098d6ab parent 9d0d1f832451c283fb93d3300531ae7b8f7b3c37 author Hannes Reinecke Wed, 30 Aug 2006 17:23:16 +0200 committer Adrian Bunk Wed, 30 Aug 2006 17:23:16 +0200 aic79xx: use BIOS settings This patch fixes the aic79xx driver to properly respond to BIOS settings. Signed-off-by: Hannes Reinecke Signed-off-by: James Bottomley Signed-off-by: Adrian Bunk commit 9d0d1f832451c283fb93d3300531ae7b8f7b3c37 tree ed6f1611e91125f4b14bb50f95945024dee061ba parent 189abe08c84ab16197c29683d40df3c4917bd475 author Paul Fulghum Sun, 27 Aug 2006 03:36:58 +0200 committer Adrian Bunk Sun, 27 Aug 2006 03:36:58 +0200 tty serialize flush_to_ldisc Serialize processing of tty buffers in flush_to_ldisc to fix (very rare) corruption of tty buffer free list on SMP systems. Signed-off-by: Paul Fulghum Acked-by: Alan Cox Signed-off-by: Adrian Bunk commit 189abe08c84ab16197c29683d40df3c4917bd475 tree 92b784587e3313eadcfcc8cdf987e526cc8b72c1 parent fbb8b6ef114c7c298a6e20bf271c7b16978d0a70 author Mark Huang Sat, 26 Aug 2006 17:35:49 +0200 committer Adrian Bunk Sat, 26 Aug 2006 17:35:49 +0200 ulog: fix panic on SMP kernels Fix kernel panic on various SMP machines. The culprit is a null ub->skb in ulog_send(). If ulog_timer() has already been scheduled on one CPU and is spinning on the lock, and ipt_ulog_packet() flushes the queue on another CPU by calling ulog_send() right before it exits, there will be no skbuff when ulog_timer() acquires the lock and calls ulog_send(). Cancelling the timer in ulog_send() doesn't help because it has already been scheduled and is running on the first CPU. Similar problem exists in ebt_ulog.c and nfnetlink_log.c. Signed-off-by: Mark Huang Signed-off-by: Patrick McHardy Signed-off-by: Adrian Bunk commit fbb8b6ef114c7c298a6e20bf271c7b16978d0a70 tree f0eb3af0fe81a3c9f9aa20c676a460523e9276cb parent 13967acced1d331cb76a3392e53d3a72dfcbbd64 author Neil Brown Sat, 26 Aug 2006 17:33:27 +0200 committer Adrian Bunk Sat, 26 Aug 2006 17:33:27 +0200 Fix a potential NULL dereference in md/raid1 At the point where this 'atomic_add' is, rdev could be NULL, as seen by the fact that we test for this in the very next statement. Further is it is really the wrong place of the add. We could add to the count of corrected errors once the are sure it was corrected, not before trying to correct it. Signed-off-by: Neil Brown Signed-off-by: Adrian Bunk commit 13967acced1d331cb76a3392e53d3a72dfcbbd64 tree c5938c56e380c75cf1580d1e31a50588c64a7515 parent de8bcc327c65dc8fc707cbd25a745d3cecacd873 author Tsutomu Fujii Sat, 26 Aug 2006 02:41:37 +0200 committer Adrian Bunk Sat, 26 Aug 2006 02:41:37 +0200 SCTP: Send only 1 window update SACK per message. Right now, every time we increase our rwnd by more then MTU bytes, we trigger a SACK. When processing large messages, this will generate a SACK for almost every other SCTP fragment. However since we are freeing the entire message at the same time, we might as well collapse the SACK generation to 1. Signed-off-by: Tsutomu Fujii Signed-off-by: Vlad Yasevich Signed-off-by: Sridhar Samudrala Signed-off-by: David S. Miller Signed-off-by: Adrian Bunk commit de8bcc327c65dc8fc707cbd25a745d3cecacd873 tree 03ccb82b8cea682bca7687974207b18879d95fa2 parent 2d17897a633579202cb548e759756a1cc823568b author Vlad Yasevich Sat, 26 Aug 2006 02:41:12 +0200 committer Adrian Bunk Sat, 26 Aug 2006 02:41:12 +0200 SCTP: Reset rtt_in_progress for the chunk when processing its sack. Signed-off-by: Vlad Yasevich Signed-off-by: Sridhar Samudrala Signed-off-by: David S. Miller Signed-off-by: Adrian Bunk commit 2d17897a633579202cb548e759756a1cc823568b tree 0e5af47c5968d6849199281ee009cedbed7f9bb5 parent fe7e513c0b87b1b41f162eb6d5ee9d48cdaaf578 author Vlad Yasevich Sat, 26 Aug 2006 02:40:29 +0200 committer Adrian Bunk Sat, 26 Aug 2006 02:40:29 +0200 SCTP: Limit association max_retrans setting in setsockopt. When using ASSOCINFO socket option, we need to limit the number of maximum association retransmissions to be no greater than the sum of all the path retransmissions. This is specified in Section 7.1.2 of the SCTP socket API draft. However, we only do this if the association has multiple paths. If there is only one path, the protocol stack will use the assoc_max_retrans setting when trying to retransmit packets. Signed-off-by: Vlad Yasevich Signed-off-by: Sridhar Samudrala Signed-off-by: David S. Miller Signed-off-by: Adrian Bunk commit fe7e513c0b87b1b41f162eb6d5ee9d48cdaaf578 tree 18ab7c1ad713991f90aac73446804432cdb78ced parent cf7260ee89f7b187304a35b188cc0c889f7bdd24 author Neil Horman Sat, 26 Aug 2006 02:39:48 +0200 committer Adrian Bunk Sat, 26 Aug 2006 02:39:48 +0200 SCTP: Fix persistent slowdown in sctp when a gap ack consumes rx buffer. In the event that our entire receive buffer is full with a series of chunks that represent a single gap-ack, and then we accept a chunk (or chunks) that fill in the gap between the ctsn and the first gap, we renege chunks from the end of the buffer, which effectively does nothing but move our gap to the end of our received tsn stream. This does little but move our missing tsns down stream a little, and, if the sender is sending sufficiently large retransmit frames, the result is a perpetual slowdown which can never be recovered from, since the only chunk that can be accepted to allow progress in the tsn stream necessitates that a new gap be created to make room for it. This leads to a constant need for retransmits, and subsequent receiver stalls. The fix I've come up with is to deliver the frame without reneging if we have a full receive buffer and the receiving sockets sk_receive_queue is empty(indicating that the receive buffer is being blocked by a missing tsn). Signed-off-by: Neil Horman Signed-off-by: Sridhar Samudrala Signed-off-by: David S. Miller Signed-off-by: Adrian Bunk commit cf7260ee89f7b187304a35b188cc0c889f7bdd24 tree 0f3ea8a6066272ae3c4546f353fbffa2cc5ddd4e parent c92faf3e0a557270141be67f206d7cdb99bfc3a2 author Vlad Yasevich Sat, 26 Aug 2006 02:39:03 +0200 committer Adrian Bunk Sat, 26 Aug 2006 02:39:03 +0200 SCTP: Reject sctp packets with broadcast addresses. Make SCTP handle broadcast properly Signed-off-by: Vlad Yasevich Signed-off-by: Sridhar Samudrala Signed-off-by: David S. Miller Signed-off-by: Adrian Bunk