[siemens/jailhouse] 362114: core: ivshmem: Notify remote about state change on...

3 views
Skip to first unread message

GitHub

unread,
Dec 5, 2016, 10:03:31 AM12/5/16
to jailho...@googlegroups.com
Branch: refs/heads/next
Home: https://github.com/siemens/jailhouse
Commit: 362114638ff1300f89b8a9304dabf44ee7701b7d
https://github.com/siemens/jailhouse/commit/362114638ff1300f89b8a9304dabf44ee7701b7d
Author: Jan Kiszka <jan.k...@siemens.com>
Date: 2016-12-05 (Mon, 05 Dec 2016)

Changed paths:
M hypervisor/ivshmem.c

Log Message:
-----------
core: ivshmem: Notify remote about state change on cell removal

Removing one peer cell has the implicit effect of resetting its state to
0. Signal this change via an interrupt as well.

Signed-off-by: Jan Kiszka <jan.k...@siemens.com>


Commit: a1699df01ed7b009339114cfa47a6639249a2964
https://github.com/siemens/jailhouse/commit/a1699df01ed7b009339114cfa47a6639249a2964
Author: Jan Kiszka <jan.k...@siemens.com>
Date: 2016-12-05 (Mon, 05 Dec 2016)

Changed paths:
M hypervisor/ivshmem.c

Log Message:
-----------
core: ivshmem: Fix matching of peers

So far, we created another ivshmem_data structure in case two devices
matched by BDF but not by their shared memory regions. This did not make
sense (ivshmem_find only returns the first BDF match) and it could leak
the data structure when the device was destroyed again.

Change the policy so that we match on BDF but fail creating the second
device in case of region mismatch.

Signed-off-by: Jan Kiszka <jan.k...@siemens.com>


Commit: e0287ddd948c94d224281889581329c6c245aa4f
https://github.com/siemens/jailhouse/commit/e0287ddd948c94d224281889581329c6c245aa4f
Author: Jan Kiszka <jan.k...@siemens.com>
Date: 2016-12-05 (Mon, 05 Dec 2016)

Changed paths:
M hypervisor/ivshmem.c

Log Message:
-----------
core: ivshmem: Keep BDF also in ivshmem_data structure

Cache the matching BDF of the peer in the ivshmem_data structure. This
will help us when we no longer require slot 0 to be in use.

Signed-off-by: Jan Kiszka <jan.k...@siemens.com>


Commit: 0ce7b1c938f6fb62e71fc81144bbc9cebea626e1
https://github.com/siemens/jailhouse/commit/0ce7b1c938f6fb62e71fc81144bbc9cebea626e1
Author: Jan Kiszka <jan.k...@siemens.com>
Date: 2016-12-05 (Mon, 05 Dec 2016)

Changed paths:
M hypervisor/ivshmem.c

Log Message:
-----------
core: ivshmem: Rework device creation and destruction

Moving device from slot 1 to slot 0 in case the first slot becomes free
had a bug: it didn't update the pointer from pci_device to the
ivshmem_endpoint.

Instead of fixing this, let's take the chance and redesign the
management: Thanks to earlier preparation steps, we can now keep the
device in its original slot. We just need to check during creation which
slot is free (device pointer is NULL) and use that. Now ivpos of an
endpoint always equals the array index in ivshmem_data.eps that the
endpoint uses.

Finally, we can significantly simplify the code by folding ivshmem_find
and ivshmem_connect/disconnect_cell into their callers.

Signed-off-by: Jan Kiszka <jan.k...@siemens.com>


Compare: https://github.com/siemens/jailhouse/compare/e1426b6ea850...0ce7b1c938f6
Reply all
Reply to author
Forward
0 new messages