Skip to content

Commit a95251b

Browse files
committed
Merge tag 'rproc-3.7-fix' of git://git.kernel.org/pub/scm/linux/kernel/git/ohad/remoteproc
Pull remoteproc fix from Ohad Ben-Cohen: "A single remoteproc fix for an error path issue reported by Ido Yariv." * tag 'rproc-3.7-fix' of git://git.kernel.org/pub/scm/linux/kernel/git/ohad/remoteproc: remoteproc: fix error path of ->find_vqs
2 parents b45b161 + dab55bb commit a95251b

File tree

1 file changed

+12
-6
lines changed

1 file changed

+12
-6
lines changed

drivers/remoteproc/remoteproc_virtio.c

Lines changed: 12 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -120,15 +120,11 @@ static struct virtqueue *rp_find_vq(struct virtio_device *vdev,
120120
return vq;
121121
}
122122

123-
static void rproc_virtio_del_vqs(struct virtio_device *vdev)
123+
static void __rproc_virtio_del_vqs(struct virtio_device *vdev)
124124
{
125125
struct virtqueue *vq, *n;
126-
struct rproc *rproc = vdev_to_rproc(vdev);
127126
struct rproc_vring *rvring;
128127

129-
/* power down the remote processor before deleting vqs */
130-
rproc_shutdown(rproc);
131-
132128
list_for_each_entry_safe(vq, n, &vdev->vqs, list) {
133129
rvring = vq->priv;
134130
rvring->vq = NULL;
@@ -137,6 +133,16 @@ static void rproc_virtio_del_vqs(struct virtio_device *vdev)
137133
}
138134
}
139135

136+
static void rproc_virtio_del_vqs(struct virtio_device *vdev)
137+
{
138+
struct rproc *rproc = vdev_to_rproc(vdev);
139+
140+
/* power down the remote processor before deleting vqs */
141+
rproc_shutdown(rproc);
142+
143+
__rproc_virtio_del_vqs(vdev);
144+
}
145+
140146
static int rproc_virtio_find_vqs(struct virtio_device *vdev, unsigned nvqs,
141147
struct virtqueue *vqs[],
142148
vq_callback_t *callbacks[],
@@ -163,7 +169,7 @@ static int rproc_virtio_find_vqs(struct virtio_device *vdev, unsigned nvqs,
163169
return 0;
164170

165171
error:
166-
rproc_virtio_del_vqs(vdev);
172+
__rproc_virtio_del_vqs(vdev);
167173
return ret;
168174
}
169175

0 commit comments

Comments
 (0)