Commit Graph
18 Commits
Author SHA1 Message Date
Alexey Khoroshilov 498e8bf51c sample: vfio-mdev: avoid deadlock in mdev_access()
mdev_access() calls mbochs_get_page() with mdev_state->ops_lock held,
while mbochs_get_page() locks the mutex by itself.
It leads to unavoidable deadlock.

Found by Linux Driver Verification project (linuxtesting.org).

Signed-off-by: Alexey Khoroshilov <[email protected]>
Signed-off-by: Alex Williamson <[email protected]>
2018-07-11 13:22:41 -06:00
Souptick Joarder d7ef4899d7 sample/vfio-mdev: Change return type to vm_fault_t
convert mbochs_region_vm_fault and mbochs_dmabuf_vm_fault
to return vm_fault_t type.

Signed-off-by: Souptick Joarder <[email protected]>
Signed-off-by: Alex Williamson <[email protected]>
2018-07-04 10:42:04 -06:00
Gerd Hoffmann 7733e05b34 sample/mdev/mbochs: add mbochs_kunmap_dmabuf
There is no default implementation for dma_buf_ops->unmap.
So add a function unmapping the page, otherwise we'll leak them.

Signed-off-by: Gerd Hoffmann <[email protected]>
Signed-off-by: Alex Williamson <[email protected]>
2018-06-26 00:27:23 -06:00
Gerd Hoffmann 2203d8a76e sample/mdev/mbochs: remove mbochs_kmap_atomic_dmabuf
Atomic mapping interface for dmabufs will be removed.

Signed-off-by: Gerd Hoffmann <[email protected]>
Signed-off-by: Alex Williamson <[email protected]>
2018-06-26 00:27:22 -06:00
Gerd Hoffmann a5e6e6505f sample: vfio bochs vbe display (host device for bochs-drm)
Display device, demo-ing the vfio dmabuf display interface
(VFIO_GFX_PLANE_TYPE_DMABUF).  Compatible enough to qemu stdvga
that bochs-drm.ko can be used as guest driver.

Signed-off-by: Gerd Hoffmann <[email protected]>
Signed-off-by: Alex Williamson <[email protected]>
2018-06-08 10:24:16 -06:00
Gerd Hoffmann cacade1946 sample: vfio mdev display - guest driver
Guest fbdev driver for CONFIG_SAMPLE_VFIO_MDEV_MDPY.

Signed-off-by: Gerd Hoffmann <[email protected]>
Signed-off-by: Alex Williamson <[email protected]>
2018-06-08 10:24:13 -06:00
Gerd Hoffmann d61fc96f47 sample: vfio mdev display - host device
Simple framebuffer display, demo-ing the vfio region display interface
(VFIO_GFX_PLANE_TYPE_REGION).

Signed-off-by: Gerd Hoffmann <[email protected]>
Signed-off-by: Alex Williamson <[email protected]>
2018-06-08 10:24:09 -06:00
Shunyong Yang c9f89c3f87 vfio-mdev/samples: change RDI interrupt condition
When FIFO mode is enabled, the receive data available interrupt
(UART_IIR_RDI in code) should be triggered when the number of data
in FIFO is equal or larger than interrupt trigger level.

This patch changes the trigger level check to ensure multiple bytes
received from upper layer can trigger RDI interrupt correctly.

Cc: Joey Zheng <[email protected]>
Signed-off-by: Shunyong Yang <[email protected]>
Reviewed by: Kirti Wankhede <[email protected]>
Signed-off-by: Alex Williamson <[email protected]>
2018-03-22 13:18:18 -06:00
Bhumika Goyal 79d40370e8 vfio-mdev/samples: make mdev_fops const and static
Make this const as it is only passed to a const argument of the function
mdev_register_device. Make it static as it is not referenced in any
other file.

Structure found using Coccinelle and changes done by hand.

Signed-off-by: Bhumika Goyal <[email protected]>
Signed-off-by: Alex Williamson <[email protected]>
2017-10-02 12:40:05 -06:00
Dan Carpenter 73da4268fd vfio-mdev: remove some dead code
We set info.count to 1 in mtty_get_irq_info() so static checkers
complain that, "Why do we have impossible conditions?"  The answer is
that it seems to be left over dead code that can be safely removed.

Signed-off-by: Dan Carpenter <[email protected]>
Reviewed-by: Kirti Wankhede <[email protected]>
Signed-off-by: Alex Williamson <[email protected]>
2017-01-11 12:12:37 -07:00
Dan Carpenter 5c677869e0 vfio-mdev: buffer overflow in ioctl()
This is a sample driver for documentation so the impact is probably
pretty low.  But we should check that bar_index is valid so we
don't write beyond the end of the mdev_state->region_info[] array.

Fixes: 9d1a546c53 ("docs: Sample driver to demonstrate how to use Mediated device framework.")
Signed-off-by: Dan Carpenter <[email protected]>
Reviewed-by: Kirti Wankhede <[email protected]>
Signed-off-by: Alex Williamson <[email protected]>
2017-01-11 12:12:29 -07:00
Dan Carpenter 6ed0993a0b vfio-mdev: return -EFAULT if copy_to_user() fails
The copy_to_user() function returns the number of bytes which it wasn't
able to copy but we want to return a negative error code.

Fixes: 9d1a546c53 ("docs: Sample driver to demonstrate how to use Mediated device framework.")
Signed-off-by: Dan Carpenter <[email protected]>
Reviewed-by: Kirti Wankhede <[email protected]>
Signed-off-by: Alex Williamson <[email protected]>
2017-01-11 12:06:35 -07:00
Dan Carpenter d293dbaa54 vfio-mdev: fix some error codes in the sample code
This is just sample code.  We forget to set the error codes in a couple
places.

Signed-off-by: Dan Carpenter <[email protected]>
Reported-by: Alexey Khoroshilov <[email protected]>
Signed-off-by: Alex Williamson <[email protected]>
2017-01-04 08:32:23 -07:00
Alex Williamson 99e3123e3d vfio-mdev: Make mdev_device private and abstract interfaces
Abstract access to mdev_device so that we can define which interfaces
are public rather than relying on comments in the structure.

Cc: Zhenyu Wang <[email protected]>
Cc: Zhi Wang <[email protected]>
Signed-off-by: Alex Williamson <[email protected]>
Reviewed-by: Jike Song <[email protected]>
Reviewed by: Kirti Wankhede <[email protected]>
2016-12-30 08:13:44 -07:00
Alex Williamson 9372e6feaa vfio-mdev: Make mdev_parent private
Rather than hoping for good behavior by marking some elements
internal, enforce it by making the entire structure private and
creating an accessor function for the one useful external field.

Cc: Zhenyu Wang <[email protected]>
Cc: Zhi Wang <[email protected]>
Cc: Jike Song <[email protected]>
Signed-off-by: Alex Williamson <[email protected]>
Reviewed by: Kirti Wankhede <[email protected]>
2016-12-30 08:13:41 -07:00
Alex Williamson 42930553a7 vfio-mdev: de-polute the namespace, rename parent_device & parent_ops
Add an mdev_ prefix so we're not poluting the namespace so much.

Cc: Zhenyu Wang <[email protected]>
Cc: Zhi Wang <[email protected]>
Cc: Jike Song <[email protected]>
Signed-off-by: Alex Williamson <[email protected]>
Reviewed by: Kirti Wankhede <[email protected]>
2016-12-30 08:13:38 -07:00
Alex Williamson 08c1a4ef7c vfio-mdev: Fix mtty sample driver building
This sample driver was originally under Documentation/ and was moved
to samples, but build support was never adjusted for the new location.

Signed-off-by: Alex Williamson <[email protected]>
Reviewed-by: Eric Auger <[email protected]>
Tested-by: Eric Auger <[email protected]>
Reviewed-by: Kirti Wankhede <[email protected]>
2016-12-30 08:13:30 -07:00
Kirti Wankhede 9d1a546c53 docs: Sample driver to demonstrate how to use Mediated device framework.
The Sample driver creates mdev device that simulates serial port over PCI
card.

Signed-off-by: Kirti Wankhede <[email protected]>
Signed-off-by: Neo Jia <[email protected]>
Signed-off-by: Alex Williamson <[email protected]>
2016-11-17 09:18:44 -07:00