Browse Source

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>
Michael S. Tsirkin 10 years ago
parent
commit
7754f53e94
1 changed files with 6 additions and 0 deletions
  1. 6 0
      net/9p/trans_virtio.c

+ 6 - 0
net/9p/trans_virtio.c

@@ -524,6 +524,12 @@ static int p9_virtio_probe(struct virtio_device *vdev)
 	int err;
 	int err;
 	struct virtio_chan *chan;
 	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);
 	chan = kmalloc(sizeof(struct virtio_chan), GFP_KERNEL);
 	if (!chan) {
 	if (!chan) {
 		pr_err("Failed to allocate virtio 9P channel\n");
 		pr_err("Failed to allocate virtio 9P channel\n");