summaryrefslogtreecommitdiffstats
path: root/net/9p
diff options
context:
space:
mode:
authorMichael S. Tsirkin <mst@redhat.com>2015-01-12 15:23:37 +0100
committerRusty Russell <rusty@rustcorp.com.au>2015-01-21 06:58:45 +0100
commit7754f53e944122fa95ef36039d3a5009910ce6fc (patch)
tree71b287d6c4585270ce40b22764577a9c8afbace0 /net/9p
parentvirtio_pci: drop virtio_config dependency (diff)
downloadlinux-7754f53e944122fa95ef36039d3a5009910ce6fc.tar.xz
linux-7754f53e944122fa95ef36039d3a5009910ce6fc.zip
virtio/9p: verify device has config space
Some devices might not implement config space access (e.g. remoteproc used not to - before 3.9). virtio/9p needs config space access so make it fail gracefully if not there. Signed-off-by: Michael S. Tsirkin <mst@redhat.com> Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
Diffstat (limited to 'net/9p')
-rw-r--r--net/9p/trans_virtio.c6
1 files changed, 6 insertions, 0 deletions
diff --git a/net/9p/trans_virtio.c b/net/9p/trans_virtio.c
index daa749c8b3fb..d8e376a5f0f1 100644
--- a/net/9p/trans_virtio.c
+++ b/net/9p/trans_virtio.c
@@ -524,6 +524,12 @@ static int p9_virtio_probe(struct virtio_device *vdev)
int err;
struct virtio_chan *chan;
+ if (!vdev->config->get) {
+ dev_err(&vdev->dev, "%s failure: config access disabled\n",
+ __func__);
+ return -EINVAL;
+ }
+
chan = kmalloc(sizeof(struct virtio_chan), GFP_KERNEL);
if (!chan) {
pr_err("Failed to allocate virtio 9P channel\n");