linux_dsm_epyc7002/drivers
Laszlo Ersek 08e34eb14f xen-netfront: delay gARP until backend switches to Connected
After a guest is live migrated, the xen-netfront driver emits a gratuitous
ARP message, so that networking hardware on the target host's subnet can
take notice, and public routing to the guest is re-established. However,
if the packet appears on the backend interface before the backend is added
to the target host's bridge, the packet is lost, and the migrated guest's
peers become unable to talk to the guest.

A sufficient two-parts condition to prevent the above is:

(1) ensure that the backend only moves to Connected xenbus state after its
hotplug scripts completed, ie. the netback interface got added to the
bridge; and

(2) ensure the frontend only queues the gARP when it sees the backend move
to Connected.

These two together provide complete ordering. Sub-condition (1) is already
satisfied by commit f942dc2552 in Linus' tree, based on commit
6b0b80ca7165 from [1].

In general, the full condition is sufficient, not necessary, because,
according to [2], live migration has been working for a long time without
satisfying sub-condition (2). However, after 6b0b80ca7165 was backported
to the RHEL-5 host to ensure (1), (2) still proved necessary in the RHEL-6
guest. This patch intends to provide (2) for upstream.

The Reviewed-by line comes from [3].

[1] git://xenbits.xen.org/people/ianc/linux-2.6.git#upstream/dom0/backend/netback-history
[2] http://old-list-archives.xen.org/xen-devel/2011-06/msg01969.html
[3] http://old-list-archives.xen.org/xen-devel/2011-07/msg00484.html

Signed-off-by: Laszlo Ersek <lersek@redhat.com>
Reviewed-by: Ian Campbell <ian.campbell@citrix.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
2011-12-12 19:02:41 -05:00
..
accessibility
acpi
amba
ata
atm atm: eliminate atm_guess_pdu2truesize() 2011-11-26 16:40:30 -05:00
auxdisplay
base Merge branch 'driver-core-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/driver-core 2011-11-21 20:36:26 -08:00
bcma bcma: pci: use fixed windows when possible 2011-12-06 16:07:07 -05:00
block
bluetooth Merge branch 'master' of git://git.kernel.org/pub/scm/linux/kernel/git/padovan/bluetooth-next 2011-12-06 16:02:05 -05:00
cdrom
char
clk
clocksource
connector
cpufreq
cpuidle
crypto Merge git://github.com/herbertx/crypto 2011-11-25 21:55:07 -08:00
dca
devfreq
dio
dma
edac drivers/edac/mpc85xx_edac.c: fix memory controller compatible for edac 2011-11-24 01:59:38 -06:00
eisa
firewire
firmware Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound 2011-12-02 08:10:51 -08:00
gpio gpio: fix a build failure on KS8695 GPIO 2011-12-05 15:30:33 -08:00
gpu vmwgfx: integer overflow in vmw_kms_update_layout_ioctl() 2011-12-02 10:49:41 +00:00
hid Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jikos/hid 2011-12-02 08:25:46 -08:00
hv
hwmon hwmon: convert drivers/hwmon/* to use module_platform_driver() 2011-11-26 09:48:20 -08:00
hwspinlock
i2c Merge branch 'fixes' of http://ftp.arm.linux.org.uk/pub/linux/arm/kernel/git-cur/linux-2.6-arm 2011-12-01 11:53:54 -08:00
ide Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/ide 2011-11-18 22:04:12 -02:00
idle
ieee802154
infiniband infiniband: ipoib: Sanitize neighbour handling in ipoib_main.c 2011-12-05 15:20:20 -05:00
input Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/dtor/input 2011-11-22 09:18:06 -08:00
iommu intr_remapping: Fix section mismatch in ir_dev_scope_init() 2011-12-05 18:22:53 +01:00
isdn Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net 2011-12-02 13:49:21 -05:00
leds
lguest
macintosh
mca
md
media
memstick
message
mfd
misc Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net 2011-12-02 13:49:21 -05:00
mmc
mtd
net xen-netfront: delay gARP until backend switches to Connected 2011-12-12 19:02:41 -05:00
nfc NFC: pn533: Staticise pn533_data_exchange() 2011-11-30 15:09:00 -05:00
nubus
of of/irq: of_irq_init: add check for parent equal to child node 2011-11-29 08:22:40 -06:00
oprofile
parisc
parport
pci Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jbarnes/pci 2011-11-23 14:58:46 -08:00
pcmcia
pinctrl
platform toshiba_acpi: Fix machines that don't support HCI_SYSTEM_EVENT 2011-12-05 13:07:28 -05:00
pnp
power x86/mrst: Battery fixes 2011-12-05 17:06:37 +01:00
pps
ps3
ptp
rapidio
regulator regulator: twl: fix twl4030 support for smps regulators 2011-11-28 18:58:31 +00:00
rtc Merge branch 'timers-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip 2011-12-05 16:53:43 -08:00
s390 net: make vlan ndo_vlan_rx_[add/kill]_vid return error value 2011-12-08 19:52:37 -05:00
sbus
scsi cxgb4i: Handle dst_get_neighbour_noref() returning NULL. 2011-12-05 15:20:20 -05:00
sfi
sh
sn
spi ARM: 7175/1: add subname parameter to mfp_set_groupg callers 2011-11-26 21:58:54 +00:00
ssb
staging Merge branch 'staging-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/staging 2011-12-02 13:30:25 -08:00
target
tc
telephony
thermal
tty Merge branch 'tty-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/tty 2011-11-21 20:36:46 -08:00
uio
usb Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net 2011-12-06 21:10:05 -05:00
uwb
vhost
video viafb: correct sync polarity for OLPC DCON 2011-11-22 00:56:17 +00:00
virt
virtio Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net 2011-12-02 13:49:21 -05:00
vlynq
w1
watchdog
xen
zorro
Kconfig
Makefile