aboutsummaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAge
* ACPICA: Update debug outputBob Moore2007-02-02
| | | | | Signed-off-by: Alexey Starikovskiy <alexey.y.starikovskiy@intel.com> Signed-off-by: Len Brown <len.brown@intel.com>
* ACPICA: Update version to 20060721Bob Moore2007-02-02
| | | | | Signed-off-by: Alexey Starikovskiy <alexey.y.starikovskiy@intel.com> Signed-off-by: Len Brown <len.brown@intel.com>
* ACPICA: Temporary fix for BankValue parameterBob Moore2007-02-02
| | | | | | | | | | Temporary fix for BankValue parameter of a Bank Field to support all constant values, including Zero and One. Must eventually be converted to a full TermArg evaluation. Signed-off-by: Alexey Starikovskiy <alexey.y.starikovskiy@intel.com> Signed-off-by: Len Brown <len.brown@intel.com>
* ACPICA: fix for object premature deletionFiodor Suietov2007-02-02
| | | | | | | | | Fix for object premature deletion after CopyObject on Operation Region (BZ 350) Signed-off-by: Bob Moore <robert.moore@intel.com> Signed-off-by: Alexey Starikovskiy <alexey.y.starikovskiy@intel.com> Signed-off-by: Len Brown <len.brown@intel.com>
* ACPICA: Cast acpi_thread_id to UINT32 for debug output onlyBob Moore2007-02-02
| | | | | Signed-off-by: Alexey Starikovskiy <alexey.y.starikovskiy@intel.com> Signed-off-by: Len Brown <len.brown@intel.com>
* ACPICA: Release global lock from interrupt handlerBob Moore2007-02-02
| | | | | | | | | | The ACPI Global Lock interrupt handler no longer queues the execution of a separate thread to signal the global lock semaphore. Instead, the semaphore is signaled directly from the interrupt handler. Signed-off-by: Alexey Starikovskiy <alexey.y.starikovskiy@intel.com> Signed-off-by: Len Brown <len.brown@intel.com>
* ACPICA: Delete recursive feature of ACPI Global LockBob Moore2007-02-02
| | | | | | | | | | | | | Completed a new design and implementation for the ACPI Global Lock support. On the OS side, the global lock is now treated as a standard AML mutex. Previously, multiple OS threads could acquire the global lock simultaneously, but this could cause the BIOS to be starved by the lock in cases such as the Embedded Controller driver, where there is a tight coupling between the OS and the BIOS. Signed-off-by: Alexey Starikovskiy <alexey.y.starikovskiy@intel.com> Signed-off-by: Len Brown <len.brown@intel.com>
* ACPICA: Handle case NumElements > Package lengthBob Moore2007-02-02
| | | | | | | | | Additional update for NumElements fix. Must handle case where NumElements > Package list length, pad package with null elements. Signed-off-by: Alexey Starikovskiy <alexey.y.starikovskiy@intel.com> Signed-off-by: Len Brown <len.brown@intel.com>
* ACPICA: Handle mis-matched package lengthBob Moore2007-02-02
| | | | | | | | | | | | Implement support within the AML interpreter for package objects that contain a mismatch between the AML length and package element count. In this case, the lesser of the two is used. Some BIOS code apparently modifies the package length on the fly, and this change supports this. Provides compatibility with the MS AML interpreter. Signed-off-by: Alexey Starikovskiy <alexey.y.starikovskiy@intel.com> Signed-off-by: Len Brown <len.brown@intel.com>
* ACPICA: Update function headerBob Moore2007-02-02
| | | | | Signed-off-by: Alexey Starikovskiy <alexey.y.starikovskiy@intel.com> Signed-off-by: Len Brown <len.brown@intel.com>
* Merge branch 'upstream-linus' of ↵Linus Torvalds2007-02-02
|\ | | | | | | | | | | | | | | | | | | | | master.kernel.org:/pub/scm/linux/kernel/git/jgarzik/libata-dev * 'upstream-linus' of master.kernel.org:/pub/scm/linux/kernel/git/jgarzik/libata-dev: libata: Initialize nbytes for internal sg commands libata: Fix ata_busy_wait() kernel docs pata_via: Correct missing comments pata_atiixp: propogate cable detection hack from drivers/ide to the new driver ahci/pata_jmicron: fix JMicron quirk
| * libata: Initialize nbytes for internal sg commandsBrian King2007-02-02
| | | | | | | | | | | | | | | | | | Some LLDDs, like ipr, use nbytes and pad_len to determine the total data transfer length of a command. Make sure nbytes gets initialized for internally generated commands. Signed-off-by: Brian King <brking@linux.vnet.ibm.com> Signed-off-by: Jeff Garzik <jeff@garzik.org>
| * libata: Fix ata_busy_wait() kernel docsAlan2007-02-02
| | | | | | | | | | | | | | | | | | | | | | | | > Looks like you should use ata_busy_wait() here, rather than reproducing > the same code again. It waits in 10uS chunks while 1uS chunks were used in the workaround. Could indeed do that once I know the fix is right. While I'm at it the ata_busy_wait kerneldoc is borked so here's a fix Signed-off-by: Alan Cox <alan@redhat.com> Signed-off-by: Jeff Garzik <jeff@garzik.org>
| * pata_via: Correct missing commentsAlan2007-02-02
| | | | | | | | | | | | | | The 8237S was added to the chipsets but not to the comments. Fix this Signed-off-by: Alan Cox <alan@redhat.com> Signed-off-by: Jeff Garzik <jeff@garzik.org>
| * pata_atiixp: propogate cable detection hack from drivers/ide to the new driverAlan2007-02-02
| | | | | | | | | | Signed-off-by: Alan Cox <alan@redhat.com> Signed-off-by: Jeff Garzik <jeff@garzik.org>
| * ahci/pata_jmicron: fix JMicron quirkTejun Heo2007-02-02
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | For all JMicrons except for 361 and 368, AHCI mode enable bits in the Control(1) should be set. This used to be done in both ahci and pata_jmicron but while moving programming to PCI quirk, it was removed from ahci part while still left in pata_jmicron. The implemented JMicron PCI quirk was incorrect in that it didn't program AHCI mode enable bits. If pata_jmicron is loaded first and programs those bits, the ahci ports work; otherwise, ahci device detection fails miserably. This patch makes JMicron PCI quirk clear SATA IDE mode bits and set AHCI mode bits and remove the respective part from pata_jmicron. Tested on JMB361, 363 and 368. Signed-off-by: Tejun Heo <htejun@gmail.com> Signed-off-by: Jeff Garzik <jeff@garzik.org>
* | Merge branch 'upstream-linus' of ↵Linus Torvalds2007-02-02
|\ \ | | | | | | | | | | | | | | | | | | | | | | | | master.kernel.org:/pub/scm/linux/kernel/git/jgarzik/netdev-2.6 * 'upstream-linus' of master.kernel.org:/pub/scm/linux/kernel/git/jgarzik/netdev-2.6: spidernet : fix memory leak in spider_net_stop e100: fix napi ifdefs removing needed code netxen patches
| * | spidernet : fix memory leak in spider_net_stopJens Osterkamp2007-02-02
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | We forget to call spider_net_free_rx_chain_contents which does the actual dev_kfree_skb. New skbs are allocated from skbuff_head_cache on each "ifconfig up" letting the cache grow infinitely. This patch fixes it. Signed-off-by: Jens Osterkamp <jens@de.ibm.com> Signed-off-by: Jeff Garzik <jeff@garzik.org>
| * | e100: fix napi ifdefs removing needed codeAuke Kok2007-02-02
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | e100: fix napi ifdefs removing needed code From: Auke Kok <auke-jan.h.kok@intel.com> The e100 driver is NAPI mode only. We need to netif_poll_disable during suspend and shutdown. The non-NAPI driver code was removed and is only avaiable in the out-of-tree e100 kernel driver. Signed-off-by: Auke Kok <auke-jan.h.kok@intel.com> Signed-off-by: Jeff Garzik <jeff@garzik.org>
| * | Merge ../linux-2.6Jeff Garzik2007-02-02
| |\|
| * | netxen patchesAl Viro2007-01-31
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Have fun. >From 24f4a1a77431575a9cdfaae25adda85842099f70 Mon Sep 17 00:00:00 2001 From: Al Viro <viro@zeniv.linux.org.uk> Date: Mon, 1 Jan 2007 15:22:56 -0500 Subject: [PATCH] netxen trivial annotations Signed-off-by: Al Viro <viro@zeniv.linux.org.uk> Signed-off-by: Jeff Garzik <jeff@garzik.org>
* | | Merge master.kernel.org:/pub/scm/linux/kernel/git/davem/bnx2-2.6Linus Torvalds2007-02-02
|\ \ \ | | | | | | | | | | | | | | | | * master.kernel.org:/pub/scm/linux/kernel/git/davem/bnx2-2.6: [BNX2]: PHY workaround for 5709 A0.
| * | | [BNX2]: PHY workaround for 5709 A0.Michael Chan2007-02-02
| | |/ | |/| | | | | | | | | | | | | | | | | | | | | | | | | 5709 A0 copper devices will not link up with some link partners without this workaround. Update driver to 1.5.5. Signed-off-by: Michael Chan <mchan@broadcom.com> Signed-off-by: David S. Miller <davem@davemloft.net>
* | | Merge master.kernel.org:/pub/scm/linux/kernel/git/davem/net-2.6Linus Torvalds2007-02-02
|\ \ \ | | | | | | | | | | | | | | | | * master.kernel.org:/pub/scm/linux/kernel/git/davem/net-2.6: [NET_SCHED]: act_ipt: fix regression in ipt action
| * | | [NET_SCHED]: act_ipt: fix regression in ipt actionPatrick McHardy2007-02-02
| |/ / | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The x_tables patch broke target module autoloading in the ipt action by replacing the ipt_find_target call (which does autoloading) by xt_find_target (which doesn't do autoloading). Additionally xt_find_target may return ERR_PTR values in case of an error, which are not handled. Use xt_request_find_target, which does both autoloading and ERR_PTR handling properly. Also don't forget to drop the target module reference again when xt_check_target fails. Signed-off-by: Patrick McHardy <kaber@trash.net> Signed-off-by: David S. Miller <davem@davemloft.net>
* | | Merge master.kernel.org:/pub/scm/linux/kernel/git/davem/sparc-2.6Linus Torvalds2007-02-02
|\ \ \ | | | | | | | | | | | | | | | | * master.kernel.org:/pub/scm/linux/kernel/git/davem/sparc-2.6: [SPARC32]: Fix over-optimization by GCC near ip_fast_csum.
| * | | [SPARC32]: Fix over-optimization by GCC near ip_fast_csum.Bob Breuer2007-02-01
| |/ / | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | In some cases such as: iph->check = 0; iph->check = ip_fast_csum((unsigned char *)iph, iph->ihl); GCC may optimize out the previous store. Observed as a failure of NFS over udp (bad checksums on ip fragments) when compiled with GCC 3.4.2. Signed-off-by: Bob Breuer <breuerr@mc.net> Signed-off-by: David S. Miller <davem@davemloft.net>
* | | [PATCH] MAINTAINERS: ufs entryEvgeniy Dushistov2007-02-02
| | | | | | | | | | | | | | | | | | | | | | | | Mark ufs file system as maintainable, and add me as maintainer, to help people find appropriate person to assign bugs. Signed-off-by: Evgeniy Dushistov <dushistov@mail.ru> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
* | | Revert "[PATCH] fix typo in geode_configre()@cyrix.c"Linus Torvalds2007-02-02
|/ / | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This reverts commit e4f0ae0ea63caceff37a13f281a72652b7ea71ba. It's not wrong, but it's not right either, and everybody seems to agree that the right fix is probably to do the ccr3 write after the ccr4 one (and that we also should clean it up a bit). And after that we need to really validate that all the bits that we write to ccr4 actually do work. The old 2.6.19 code was insane, and basically didn't change ccr4 at all (even though it certainly looks like it was the *intent* to do so). So let's revert the change that may fix things, just because it's not what was actually ever tested when the code was written, even if it _was_ the intent. There's a discussion on http://lkml.org/lkml/2007/1/9/63 that was started by the patch that now gets reverted, and that discussion may well contain the proper long-term fix. Suggested-by: Adrian Bunk <bunk@stusta.de> Acked-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
* | [PATCH] Remove avr32@atmel.com from MAINTAINERSHaavard Skinnemoen2007-02-01
| | | | | | | | | | | | | | | | | | | | | | | | | | avr32@atmel.com is a technical support address and is not really appropriate for sending patches. Lots of annoying automatics getting in the way. I'm still the maintainer of all the entries touched by this patch, so nothing changes with regard to the "Supported" status of the AVR32 architecture or the macb driver. Signed-off-by: Haavard Skinnemoen <hskinnemoen@atmel.com> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
* | [PATCH] via82cxxx: fix typo ("cx7000" should be corrected to "cx700")Bartlomiej Zolnierkiewicz2007-02-01
| | | | | | | | | | | | | | Noticed by JosephChan@via.com.tw. Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
* | [PATCH] sysrq: showBlockedTasks is sysrq-WRandy Dunlap2007-02-01
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Change SysRq showBlockedTasks from sysrq-X to sysrq-W and show that in the Help message. It was previously done via X, but X is already used for Xmon on ppc & powerpc platforms and this collision needs to be avoided. All callers of register_sysrq_key() are now marked in the sysrq op/key table. I didn't mark 'h' as Help because Help is just printed for any unknown key, such as '?'. Added some omitted sysrq key entries in the sysrq.txt file. Signed-off-by: Randy Dunlap <randy.dunlap@oracle.com> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
* | [PATCH] procfs: Fix listing of /proc/NOT_A_TGID/taskGuillaume Chazarain2007-02-01
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Listing /proc/PID/task were PID is not a TGID should not result in duplicated entries. [g ~]$ pidof thunderbird-bin 2751 [g ~]$ ls /proc/2751/task 2751 2770 2771 2824 2826 2834 2835 2851 2853 [g ~]$ ls /proc/2770/task 2751 2770 2771 2824 2826 2834 2835 2851 2853 2770 2771 2824 2826 2834 2835 2851 2853 [g ~]$ Signed-off-by: Guillaume Chazarain <guichaz@yahoo.fr> Acked-by: "Eric W. Biederman" <ebiederm@xmission.com> Cc: Oleg Nesterov <oleg@tv-sign.ru> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
* | [PATCH] KVM: fix lockup on 32-bit intel hosts with nx disabled in the biosAvi Kivity2007-02-01
| | | | | | | | | | | | | | | | | | | | | | Intel hosts, without long mode, and with nx support disabled in the bios have an efer that is readable but not writable. This causes a lockup on switch to guest mode (even though it should exit with reason 34 according to the documentation). Signed-off-by: Avi Kivity <avi@qumranet.com> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
* | [PATCH] pci: remove warning messagesAndrew Morton2007-02-01
| | | | | | | | | | | | | | | | | | | | | | Remove these recently-added warnings. They don't tell us anythng very interesting and Kumar says "On an embedded PPC reference system I see this message 6 times when I've got no cards in the PCI slots." Acked-by: Kumar Gala <galak@kernel.crashing.org> Acked-by: Greg KH <greg@kroah.com> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
* | [PATCH] via quirk updateJean Delvare2007-02-01
| | | | | | | | | | | | | | | | | | | | Add special handling for the VT82C686. Signed-off-by: Jean Delvare <jdelvare@suse.de> Cc: Alan Cox <alan@lxorguk.ukuu.org.uk> Cc: Nick Piggin <nickpiggin@yahoo.com.au> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
* | [PATCH] uml-i386: fix build breakage with CONFIG_HIGHMEMAl Viro2007-02-01
| | | | | | | | | | | | | | | | | | missing helper used by arch/i386/mm/highmem.c, which is pulled into build on that configuration. Signed-off-by: Al Viro <viro@zeniv.linux.org.uk> Acked-by: Jeff Dike <jdike@addtoit.com> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
* | [PATCH] radio modems sitting on serial port are not for s390Al Viro2007-02-01
| | | | | | | | | | | | | | | | | | Won't build (request_irq()/free_irq()), even if you manage to find an s390 box with 8250-compatible UART they are expecting. Signed-off-by: Al Viro <viro@zeniv.linux.org.uk> Acked-by: Martin Schwidefsky <schwidefsky@de.ibm.com> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
* | [PATCH] sanitize sections for sparc32 smpAl Viro2007-02-01
| | | | | | | | | | | | | | | | | | | | a) sun4d_boot_one_cpu() should be __cpuinit (called only from __cpuinit __cpu_up(), for one thing, leads to calls of __cpuinit functions for another). b) got externs in arch/sparc/kernel/smp.c to match reality. Signed-off-by: Al Viro <viro@zeniv.linux.org.uk> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
* | [PATCH] efi_set_rtc_mmss() is not __initAl Viro2007-02-01
| | | | | | | | | | | | | | fix the extern in efi.h Signed-off-by: Al Viro <viro@zeniv.linux.org.uk> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
* | [PATCH] __crc_... is intended to be absoluteAl Viro2007-02-01
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | i386 boot/compressed/relocs checks for absolute symbols and warns about unexpected ones. If you build with modversions, you get ~2500 warnings about __crc_<symbol>. These suckers are really absolute symbols - we do _not_ want to modify them on relocation. They are generated by genksyms - EXPORT_... generates a weak alias, then genksyms produces an ld script with __crc_<symbol> = <checksum> and it's fed to ld to produce the final object file. Their only use is to match kernel and module at modprobe time; they _must_ be absolute. boot/compressed/relocs has a whitelist of known absolute symbols, but it doesn't know about __crc_... stuff. As the result, we get shitloads of false positives on any ld(1) version. Signed-off-by: Al Viro <viro@zeniv.linux.org.uk> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
* | [PATCH] fork_idle() should be __cpuinit, not __devinitAl Viro2007-02-01
| | | | | | | | | | Signed-off-by: Al Viro <viro@zeniv.linux.org.uk> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
* | [PATCH] endianness bug: ntohl() misspelled as >> 24 in fh_verify().Al Viro2007-02-01
| | | | | | | | | | Signed-off-by: Al Viro <viro@zeniv.linux.org.uk> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
* | [PATCH] ide section fixesAl Viro2007-02-01
| | | | | | | | | | | | | | | | a) cleanup_module() should be __exit b) externs should match reality Signed-off-by: Al Viro <viro@zeniv.linux.org.uk> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
* | [PATCH] mca_nmi_hook() can be called at any pointAl Viro2007-02-01
| | | | | | | | | | | | | | ... and having it __init is a bad idea. Signed-off-by: Al Viro <viro@zeniv.linux.org.uk> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
* | [PATCH] fix frv headers_checkAl Viro2007-02-01
| | | | | | | | | | | | | | | | | | | | | | | | a) registers.h is really needed there b) include of asm-generic/termios should be under __KERNEL__ c) includes of asm-generic/{memory_model,page} should be under __KERNEL (nothing in there that would work in userland) d) a lot of stuff in ptrace.h should be under __KERNEL__. Signed-off-by: Al Viro <viro@zeniv.linux.org.uk> Acked-by: David Howells <dhowells@redhat.com> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
* | Merge master.kernel.org:/pub/scm/linux/kernel/git/davem/net-2.6Linus Torvalds2007-01-31
|\ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * master.kernel.org:/pub/scm/linux/kernel/git/davem/net-2.6: [NETFILTER]: xt_hashlimit: fix ip6tables dependency [SCTP]: Force update of the rto when processing HB-ACK [IPV6]: fix BUG of ndisc_send_redirect() [IPV6]: Fix up some CONFIG typos [NETFILTER]: SIP conntrack: fix out of bounds memory access [NETFILTER]: SIP conntrack: fix skipping over user info in SIP headers [NETFILTER]: xt_connbytes: fix division by zero [MAINTAINERS]: netfilter@ is subscribers-only
| * | [NETFILTER]: xt_hashlimit: fix ip6tables dependencyPatrick McHardy2007-01-31
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | IP6_NF_IPTABLES=m, CONFIG_NETFILTER_XT_MATCH_HASHLIMIT=y results in a linker error since ipv6_find_hdr is defined in ip6_tables.c. Fix similar to Adrian Bunk's H.323 conntrack patch: selecting ip6_tables to be build as module requires hashlimit to be built as module as well. Signed-off-by: Patrick McHardy <kaber@trash.net> Signed-off-by: David S. Miller <davem@davemloft.net>
| * | [SCTP]: Force update of the rto when processing HB-ACKVlad Yasevich2007-01-30
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | When processing a HEARTBEAT-ACK it's possible that the transport rto timers will not be updated because a prior T3-RTX processing would have cleared the rto_pending flag on the transport. However, if we received a valid HEARTBEAT-ACK, we want to force update the rto variables, so re-set the rto_pending flag before calling sctp_transport_update_rto(). Signed-off-by: Vlad Yasevich <vladislav.yasevich@hp.com> Signed-off-by: Sridhar Samudrala <sri@us.ibm.com> Signed-off-by: David S. Miller <davem@davemloft.net>
| * | [IPV6]: fix BUG of ndisc_send_redirect()Li Yewang2007-01-30
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | When I tested IPv6 redirect function about kernel 2.6.19.1, and found that the kernel can send redirect packets whose target address is global address, and the target is not the actual endpoint of communication. But the criteria conform to RFC2461, the target address defines as following: Target Address An IP address that is a better first hop to use for he ICMP Destination Address. When the target is the actual endpoint of communication, i.e., the destination is a neighbor, the Target Address field MUST contain the same value as the ICMP Destination Address field. Otherwise the target is a better first-hop router and the Target Address MUST be the router's link-local address so that hosts can uniquely identify routers. According to this definition, when a router redirect to a host, the target address either the better first-hop router's link-local address or the same as the ICMP destination address field. But the function of ndisc_send_redirect() in net/ipv6/ndisc.c, does not check the target address correctly. There is another definition about receive Redirect message in RFC2461: 8.1. Validation of Redirect Messages A host MUST silently discard any received Redirect message that does not satisfy all of the following validity checks: ...... - The ICMP Target Address is either a link-local address (when redirected to a router) or the same as the ICMP Destination Address (when redirected to the on-link destination). ...... And the receive redirect function of ndisc_redirect_rcv() implemented this definition, checks the target address correctly. if (ipv6_addr_equal(dest, target)) { on_link = 1; } else if (!(ipv6_addr_type(target) & IPV6_ADDR_LINKLOCAL)) { ND_PRINTK2(KERN_WARNING "ICMPv6 Redirect: target address is not link-local.\n"); return; } So, I think the send redirect function must check the target address also. Signed-off-by: Li Yewang <lyw@nanjing-fnst.com> Acked-by: YOSHIFUJI Hideaki <yoshfuji@linux-ipv6.org> Signed-off-by: David S. Miller <davem@davemloft.net>