ia64/xen-unstable

view patches/linux-2.6.16.13/ipv6-no-autoconf.patch @ 11472:3e31c5e160cf

[HVM] Fix an error when read from APIC registers like IRR, ISR and TMR.
From SDM3 spec, for APIC registers, all 32-bit registers should
be accessed using 128-bit aligned 32bit loads or stores.
And wider registers (64-bit or 256-bit) must be accessed using
multiple 32-bit loads or stores.

In old APIC virtualization code, we use IRR, ISR and TMR which are
256-bit registers as contiguous bit maps other than multiple 32-bit.

So guest always fetch error values.

Original patch was:
* Signed-off-by: Xiaohui Xin <xiaohui.xin@intel.com>
* Signed-off-by: Yunhong Jiang <yunhong.jiang@intel.com>
* Signed-off-by: Eddie Dong <eddie.dong@intel.com>

Signed-off-by: Keir Fraser <keir@xensource.com>
author kaf24@firebug.cl.cam.ac.uk
date Wed Sep 13 15:59:14 2006 +0100 (2006-09-13)
parents c6f8fcca0282
children
line source
1 net/ipv6/addrconf.c | 2 ++
2 1 files changed, 2 insertions(+)
4 Index: build/net/ipv6/addrconf.c
5 ===================================================================
6 --- build.orig/net/ipv6/addrconf.c
7 +++ build/net/ipv6/addrconf.c
8 @@ -2462,6 +2462,7 @@ static void addrconf_dad_start(struct in
9 spin_lock_bh(&ifp->lock);
11 if (dev->flags&(IFF_NOARP|IFF_LOOPBACK) ||
12 + !(dev->flags&IFF_MULTICAST) ||
13 !(ifp->flags&IFA_F_TENTATIVE)) {
14 ifp->flags &= ~IFA_F_TENTATIVE;
15 spin_unlock_bh(&ifp->lock);
16 @@ -2546,6 +2547,7 @@ static void addrconf_dad_completed(struc
17 if (ifp->idev->cnf.forwarding == 0 &&
18 ifp->idev->cnf.rtr_solicits > 0 &&
19 (dev->flags&IFF_LOOPBACK) == 0 &&
20 + (dev->flags & IFF_MULTICAST) &&
21 (ipv6_addr_type(&ifp->addr) & IPV6_ADDR_LINKLOCAL)) {
22 struct in6_addr all_routers;