linux_dsm_epyc7002/drivers/xen
Konrad Rzeszutek Wilk b2c75c446a xen/tmem: Don't over-write tmem_frontswap_poolid after tmem_frontswap_init set it.
Commit 10a7a07713 ("xen: tmem: enable Xen
tmem shim to be built/loaded as a module") allows the tmem module
to be loaded any time. For this work the frontswap API had to
be able to asynchronously to call tmem_frontswap_init before
or after the swap image had been set. That was added in git
commit 905cd0e1bf
("mm: frontswap: lazy initialization to allow tmem backends to build/run as modules").

Which means we could do this (The common case):

 modprobe tmem		[so calls frontswap_register_ops, no ->init]
			 modifies tmem_frontswap_poolid = -1
 swapon /dev/xvda1	[__frontswap_init, calls -> init, tmem_frontswap_poolid is
			 < 0 so tmem hypercall done]

Or the failing one:

 swapon /dev/xvda1	[calls __frontswap_init, sets the need_init bitmap]
 modprobe tmem		[calls frontswap_register_ops, -->init calls, finds out
			tmem_frontswap_poolid is 0, does not make a hypercall.
			Later in the module_init, sets tmem_frontswap_poolid=-1]

Which meant that in the failing case we would not call the hypercall
to initialize the pool and never be able to make any frontswap
backend calls.

Moving the frontswap_register_ops after setting the tmem_frontswap_poolid
fixes it.

Signed-off-by: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
Reviewed-by: Bob Liu <bob.liu@oracle.com>
2013-06-10 10:14:33 -04:00
..
xen-pciback xen-pciback: more uses of cached MSI-X capability offset 2013-05-29 09:04:22 -04:00
xenbus xenbus_client.c: correct exit path for xenbus_map_ring_valloc_hvm 2013-05-29 15:24:55 -04:00
xenfs
acpi.c
balloon.c xen: Fixed assignment error in if statement 2013-05-20 14:14:48 -04:00
biomerge.c
cpu_hotplug.c
dbgp.c
events.c Bug-fixes: 2013-05-11 16:19:30 -07:00
evtchn.c
fallback.c xen-pciback: notify hypervisor about devices intended to be assigned to guests 2013-03-22 10:20:55 -04:00
features.c
gntalloc.c
gntdev.c
grant-table.c
Kconfig xen/tmem: Remove the usage of '[no|]selfballoon' and use 'tmem.selfballooning' bool instead. 2013-05-15 10:27:49 -04:00
Makefile
manage.c
mcelog.c
pci.c
pcpu.c
platform-pci.c
privcmd.c xen/privcmd: fix condition in privcmd_close() 2013-05-15 10:23:40 -04:00
privcmd.h
swiotlb-xen.c
sys-hypervisor.c
tmem.c xen/tmem: Don't over-write tmem_frontswap_poolid after tmem_frontswap_init set it. 2013-06-10 10:14:33 -04:00
xen-acpi-cpuhotplug.c
xen-acpi-memhotplug.c
xen-acpi-pad.c
xen-acpi-processor.c xen: resolve section mismatch warnings in xen-acpi-processor 2013-04-19 10:44:23 -04:00
xen-balloon.c
xen-selfballoon.c xen/tmem: Don't use self[ballooning|shrinking] if frontswap is off. 2013-05-15 10:27:50 -04:00
xen-stub.c xen/acpi: remove redundant acpi/acpi_drivers.h include 2013-03-11 13:53:02 -04:00
xencomm.c