qemu-e2k/docs
Paolo Bonzini 447b0d0b9e memory: avoid "resurrection" of dead FlatViews
It's possible for address_space_get_flatview() as it currently stands
to cause a use-after-free for the returned FlatView, if the reference
count is incremented after the FlatView has been replaced by a writer:

   thread 1             thread 2             RCU thread
  -------------------------------------------------------------
   rcu_read_lock
   read as->current_map
                        set as->current_map
                        flatview_unref
                           '--> call_rcu
   flatview_ref
     [ref=1]
   rcu_read_unlock
                                             flatview_destroy
   <badness>

Since FlatViews are not updated very often, we can just detect the
situation using a new atomic op atomic_fetch_inc_nonzero, similar to
Linux's atomic_inc_not_zero, which performs the refcount increment only if
it hasn't already hit zero.  This is similar to Linux commit de09a9771a53
("CRED: Fix get_task_cred() and task_state() to not resurrect dead
credentials", 2010-07-29).

Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
2017-09-21 23:19:37 +02:00
..
config docs: create config/, devel/ and spin/ subdirectories 2017-06-07 18:22:03 +02:00
devel memory: avoid "resurrection" of dead FlatViews 2017-09-21 23:19:37 +02:00
interop vhost-user: fix legacy cross-endian configurations 2017-08-02 00:13:25 +03:00
specs docs: fix broken paths to docs/specs/ivshmem-spec.txt 2017-07-31 13:13:01 +03:00
spin docs: create config/, devel/ and spin/ subdirectories 2017-06-07 18:22:03 +02:00
block-replication.txt docs: block replication's description 2016-09-13 11:00:56 +01:00
bootindex.txt docs qemu-doc: Avoid ide-drive, it's deprecated 2017-06-04 18:42:55 +03:00
ccid.txt
COLO-FT.txt docs: fix COLO architecture diagram 2016-11-15 15:36:21 +08:00
colo-proxy.txt colo-compare: Update the COLO document to add the IOThread configuration 2017-09-08 09:34:40 +08:00
generic-loader.txt docs/generic-loader: Update the document 2016-10-17 19:22:16 +01:00
igd-assign.txt vfio/pci: Add IGD documentation 2016-05-26 11:12:05 -06:00
image-fuzzer.txt
memory-hotplug.txt
multi-thread-compression.txt docs/multi-thread-compression: Fix wrong command string 2016-06-07 18:19:24 +03:00
multiseat.txt
nvdimm.txt docs: add document to explain the usage of vNVDIMM 2017-02-17 21:52:30 +02:00
pci_expander_bridge.txt
pcie_pci_bridge.txt docs: update documentation considering PCIE-PCI bridge 2017-09-08 16:15:17 +03:00
pcie.txt docs: update documentation considering PCIE-PCI bridge 2017-09-08 16:15:17 +03:00
qcow2-cache.txt docs: fix broken paths to docs/interop/qcow2.txt 2017-07-31 13:12:35 +03:00
qdev-device-use.txt docs/qdev-device-use.txt: update section Default Devices 2017-06-04 18:42:55 +03:00
qemu_logo.pdf docs: add qemu logo to pdf 2017-01-16 10:11:43 +01:00
qemupciserial.inf
rdma.txt
replay.txt replay: add record/replay for audio passthrough 2017-03-01 15:11:44 +01:00
spice-port-fqdn.txt
throttle.txt docs: Fix description of the leaky bucket algorithm in throttle.txt 2016-09-13 18:12:34 +03:00
usb2.txt docs: fix broken paths to docs/config/ich9-ehci-uhci.cfg 2017-07-31 13:12:55 +03:00
usb-storage.txt usb: Fix typo in documentation 2017-01-24 23:26:52 +03:00
virtio-balloon-stats.txt
xbzrle.txt docs/xbzrle: correction 2016-10-13 17:23:53 +02:00
xen-save-devices-state.txt docs: Belatedly update for move of qmp-commands.txt 2016-10-07 19:22:11 +02:00