Branch: refs/heads/next
  Home:   https://github.com/siemens/jailhouse
  Commit: 7394dbbdbc768c4a49e6167e30c4fcb164c8c7ad
      
https://github.com/siemens/jailhouse/commit/7394dbbdbc768c4a49e6167e30c4fcb164c8c7ad
  Author: Jan Kiszka <[email protected]>
  Date:   2016-12-06 (Tue, 06 Dec 2016)

  Changed paths:
    M hypervisor/include/jailhouse/ivshmem.h
    M hypervisor/ivshmem.c

  Log Message:
  -----------
  core: ivshmem: Synchronize remote device access with device destruction

In case of an ivshmem link between two non-root cells, one can go down
while the other is running. That is different from root to non-root
links, because the non-root cell always leaves first, and the root cell
is stopped meanwhile. We have to avoid the, after destroying one peer,
the other will still send interrupts to the former peer.

The simplest way to achieve this is using a spinlock around
dereferencing the remote pointer of an ivshmem endpoint and sending out
the interrupt to the peer on one side and around the clearing of the
remote pointer during destruction. The latter will ensure that the
sender is either already done with the transmission or will see NULL as
remote, thus will not send any message anymore. This resolves the race
between flushing pending interrupts from the destructed cell and sending
new ones from the former peer cell.

Spinlocks come with memory barrier semantics, so we can remove the
explicit barriers.

Now that we have the lock, we can also synchronize the rstate readout of
the remaining peer with device destruction to ensure that no other CPU
will consider the device alive after ivshmem_exit returned.

Signed-off-by: Jan Kiszka <[email protected]>


  Commit: 7f5c2b146b7b6d432e009b6f6062f57f4ca1e322
      
https://github.com/siemens/jailhouse/commit/7f5c2b146b7b6d432e009b6f6062f57f4ca1e322
  Author: Henning Schild <[email protected]>
  Date:   2016-12-06 (Tue, 06 Dec 2016)

  Changed paths:
    M inmates/demos/x86/ivshmem-demo.c
    M inmates/lib/x86/inmate.h

  Log Message:
  -----------
  inmates: x86: match pci device class in ivshmem-demo

Match the device class and "protocol" while probing and skip unknow
devices.

Signed-off-by: Henning Schild <[email protected]>
Signed-off-by: Jan Kiszka <[email protected]>


  Commit: d365a80d5de38fd69c66ed4dc632fb7f5615a89b
      
https://github.com/siemens/jailhouse/commit/d365a80d5de38fd69c66ed4dc632fb7f5615a89b
  Author: Jan Kiszka <[email protected]>
  Date:   2016-12-06 (Tue, 06 Dec 2016)

  Changed paths:
    M hypervisor/ivshmem.c

  Log Message:
  -----------
  core: ivshmem: Use local variable for PCI device info

Shortens some existing and upcoming long lines.

Signed-off-by: Jan Kiszka <[email protected]>


  Commit: e3e7217a94c871464dc4e31497364d176bcaa095
      
https://github.com/siemens/jailhouse/commit/e3e7217a94c871464dc4e31497364d176bcaa095
  Author: Henning Schild <[email protected]>
  Date:   2016-12-06 (Tue, 06 Dec 2016)

  Changed paths:
    M Documentation/inter-cell-communication.txt
    M hypervisor/ivshmem.c

  Log Message:
  -----------
  core: ivshmem: match device class to connect

Since 3e970ab533c4 we can specify a protocol to run on the ivshmem channel.
This patch considers a protocol mismatch between the two endpoints a
configuration error and does not connect them to each other.

Signed-off-by: Henning Schild <[email protected]>
[Jan: rebased]
Signed-off-by: Jan Kiszka <[email protected]>


Compare: 
https://github.com/siemens/jailhouse/compare/bc7f2907b0ec...e3e7217a94c8

-- 
You received this message because you are subscribed to the Google Groups 
"Jailhouse" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
For more options, visit https://groups.google.com/d/optout.

Reply via email to