tree: https://git.kernel.org/pub/scm/linux/kernel/git/mst/vhost.git linux-next head: 8ab881d0e8136390da79aa0902fe03d2f6c65e32 commit: 281310d52c1d63630f54b1ac5cca6e9eb8715b3a [6/19] virtio: add context flag to find vqs config: x86_64-randconfig-i0-201713 (attached as .config) compiler: gcc-4.9 (Debian 4.9.4-2) 4.9.4 reproduce: git checkout 281310d52c1d63630f54b1ac5cca6e9eb8715b3a # save the attached .config to linux build tree make ARCH=x86_64 All error/warnings (new ones prefixed by >>): drivers//remoteproc/remoteproc_virtio.c: In function 'rp_find_vq': >> drivers//remoteproc/remoteproc_virtio.c:107:27: warning: passing argument 8 of 'vring_new_virtqueue' from incompatible pointer type rproc_virtio_notify, callback, name); ^ In file included from drivers//remoteproc/remoteproc_virtio.c:25:0: include/linux/virtio_ring.h:93:19: note: expected 'bool (*)(struct virtqueue *)' but argument is of type 'void (*)(struct virtqueue *)' struct virtqueue *vring_new_virtqueue(unsigned int index, ^ drivers//remoteproc/remoteproc_virtio.c:107:37: warning: passing argument 9 of 'vring_new_virtqueue' from incompatible pointer type rproc_virtio_notify, callback, name); ^ In file included from drivers//remoteproc/remoteproc_virtio.c:25:0: include/linux/virtio_ring.h:93:19: note: expected 'void (*)(struct virtqueue *)' but argument is of type 'const char *' struct virtqueue *vring_new_virtqueue(unsigned int index, ^ >> drivers//remoteproc/remoteproc_virtio.c:106:7: error: too few arguments to function 'vring_new_virtqueue' vq = vring_new_virtqueue(id, len, rvring->align, vdev, false, addr, ^ In file included from drivers//remoteproc/remoteproc_virtio.c:25:0: include/linux/virtio_ring.h:93:19: note: declared here struct virtqueue *vring_new_virtqueue(unsigned int index, ^ drivers//remoteproc/remoteproc_virtio.c: At top level: >> drivers//remoteproc/remoteproc_virtio.c:264:2: warning: initialization from incompatible pointer type .find_vqs = rproc_virtio_find_vqs, ^ drivers//remoteproc/remoteproc_virtio.c:264:2: warning: (near initialization for 'rproc_virtio_config_ops.find_vqs') vim +/vring_new_virtqueue +106 drivers//remoteproc/remoteproc_virtio.c 7a1869416 drivers/remoteproc/remoteproc_virtio.c Ohad Ben-Cohen 2012-02-13 100 id, addr, len, rvring->notifyid); ac8954a41 drivers/remoteproc/remoteproc_rpmsg.c Ohad Ben-Cohen 2011-10-20 101 dd6da1c5e drivers/remoteproc/remoteproc_rpmsg.c Ohad Ben-Cohen 2012-01-12 102 /* dd6da1c5e drivers/remoteproc/remoteproc_rpmsg.c Ohad Ben-Cohen 2012-01-12 103 * Create the new vq, and tell virtio we're not interested in dd6da1c5e drivers/remoteproc/remoteproc_rpmsg.c Ohad Ben-Cohen 2012-01-12 104 * the 'weak' smp barriers, since we're talking with a real device. dd6da1c5e drivers/remoteproc/remoteproc_rpmsg.c Ohad Ben-Cohen 2012-01-12 105 */ 17bb6d408 drivers/remoteproc/remoteproc_virtio.c Jason Wang 2012-08-28 @106 vq = vring_new_virtqueue(id, len, rvring->align, vdev, false, addr, ac8954a41 drivers/remoteproc/remoteproc_rpmsg.c Ohad Ben-Cohen 2011-10-20 @107 rproc_virtio_notify, callback, name); ac8954a41 drivers/remoteproc/remoteproc_rpmsg.c Ohad Ben-Cohen 2011-10-20 108 if (!vq) { b5ab5e24e drivers/remoteproc/remoteproc_virtio.c Ohad Ben-Cohen 2012-05-30 109 dev_err(dev, "vring_new_virtqueue %s failed\n", name); 6db20ea8d drivers/remoteproc/remoteproc_virtio.c Ohad Ben-Cohen 2012-05-17 110 rproc_free_vring(rvring); 7a1869416 drivers/remoteproc/remoteproc_virtio.c Ohad Ben-Cohen 2012-02-13 111 return ERR_PTR(-ENOMEM); ac8954a41 drivers/remoteproc/remoteproc_rpmsg.c Ohad Ben-Cohen 2011-10-20 112 } ac8954a41 drivers/remoteproc/remoteproc_rpmsg.c Ohad Ben-Cohen 2011-10-20 113 7a1869416 drivers/remoteproc/remoteproc_virtio.c Ohad Ben-Cohen 2012-02-13 114 rvring->vq = vq; 7a1869416 drivers/remoteproc/remoteproc_virtio.c Ohad Ben-Cohen 2012-02-13 115 vq->priv = rvring; ac8954a41 drivers/remoteproc/remoteproc_rpmsg.c Ohad Ben-Cohen 2011-10-20 116 ac8954a41 drivers/remoteproc/remoteproc_rpmsg.c Ohad Ben-Cohen 2011-10-20 117 return vq; ac8954a41 drivers/remoteproc/remoteproc_rpmsg.c Ohad Ben-Cohen 2011-10-20 118 } ac8954a41 drivers/remoteproc/remoteproc_rpmsg.c Ohad Ben-Cohen 2011-10-20 119 dab55bbaf drivers/remoteproc/remoteproc_virtio.c Ohad Ben-Cohen 2012-11-12 120 static void __rproc_virtio_del_vqs(struct virtio_device *vdev) ac8954a41 drivers/remoteproc/remoteproc_rpmsg.c Ohad Ben-Cohen 2011-10-20 121 { ac8954a41 drivers/remoteproc/remoteproc_rpmsg.c Ohad Ben-Cohen 2011-10-20 122 struct virtqueue *vq, *n; 7a1869416 drivers/remoteproc/remoteproc_virtio.c Ohad Ben-Cohen 2012-02-13 123 struct rproc_vring *rvring; ac8954a41 drivers/remoteproc/remoteproc_rpmsg.c Ohad Ben-Cohen 2011-10-20 124 ac8954a41 drivers/remoteproc/remoteproc_rpmsg.c Ohad Ben-Cohen 2011-10-20 125 list_for_each_entry_safe(vq, n, &vdev->vqs, list) { 7a1869416 drivers/remoteproc/remoteproc_virtio.c Ohad Ben-Cohen 2012-02-13 126 rvring = vq->priv; 7a1869416 drivers/remoteproc/remoteproc_virtio.c Ohad Ben-Cohen 2012-02-13 127 rvring->vq = NULL; ac8954a41 drivers/remoteproc/remoteproc_rpmsg.c Ohad Ben-Cohen 2011-10-20 128 vring_del_virtqueue(vq); ac8954a41 drivers/remoteproc/remoteproc_rpmsg.c Ohad Ben-Cohen 2011-10-20 129 } ac8954a41 drivers/remoteproc/remoteproc_rpmsg.c Ohad Ben-Cohen 2011-10-20 130 } ac8954a41 drivers/remoteproc/remoteproc_rpmsg.c Ohad Ben-Cohen 2011-10-20 131 dab55bbaf drivers/remoteproc/remoteproc_virtio.c Ohad Ben-Cohen 2012-11-12 132 static void rproc_virtio_del_vqs(struct virtio_device *vdev) dab55bbaf drivers/remoteproc/remoteproc_virtio.c Ohad Ben-Cohen 2012-11-12 133 { dab55bbaf drivers/remoteproc/remoteproc_virtio.c Ohad Ben-Cohen 2012-11-12 134 __rproc_virtio_del_vqs(vdev); dab55bbaf drivers/remoteproc/remoteproc_virtio.c Ohad Ben-Cohen 2012-11-12 135 } dab55bbaf drivers/remoteproc/remoteproc_virtio.c Ohad Ben-Cohen 2012-11-12 136 f145928d4 drivers/remoteproc/remoteproc_virtio.c Anna, Suman 2016-08-12 137 static int rproc_virtio_find_vqs(struct virtio_device *vdev, unsigned int nvqs, ac8954a41 drivers/remoteproc/remoteproc_rpmsg.c Ohad Ben-Cohen 2011-10-20 138 struct virtqueue *vqs[], ac8954a41 drivers/remoteproc/remoteproc_rpmsg.c Ohad Ben-Cohen 2011-10-20 139 vq_callback_t *callbacks[], fb5e31d97 drivers/remoteproc/remoteproc_virtio.c Christoph Hellwig 2017-02-05 140 const char * const names[], fb5e31d97 drivers/remoteproc/remoteproc_virtio.c Christoph Hellwig 2017-02-05 141 struct irq_affinity *desc) ac8954a41 drivers/remoteproc/remoteproc_rpmsg.c Ohad Ben-Cohen 2011-10-20 142 { ac8954a41 drivers/remoteproc/remoteproc_rpmsg.c Ohad Ben-Cohen 2011-10-20 143 int i, ret; ac8954a41 drivers/remoteproc/remoteproc_rpmsg.c Ohad Ben-Cohen 2011-10-20 144 ac8954a41 drivers/remoteproc/remoteproc_rpmsg.c Ohad Ben-Cohen 2011-10-20 145 for (i = 0; i < nvqs; ++i) { ac8954a41 drivers/remoteproc/remoteproc_rpmsg.c Ohad Ben-Cohen 2011-10-20 146 vqs[i] = rp_find_vq(vdev, i, callbacks[i], names[i]); ac8954a41 drivers/remoteproc/remoteproc_rpmsg.c Ohad Ben-Cohen 2011-10-20 147 if (IS_ERR(vqs[i])) { ac8954a41 drivers/remoteproc/remoteproc_rpmsg.c Ohad Ben-Cohen 2011-10-20 148 ret = PTR_ERR(vqs[i]); ac8954a41 drivers/remoteproc/remoteproc_rpmsg.c Ohad Ben-Cohen 2011-10-20 149 goto error; ac8954a41 drivers/remoteproc/remoteproc_rpmsg.c Ohad Ben-Cohen 2011-10-20 150 } ac8954a41 drivers/remoteproc/remoteproc_rpmsg.c Ohad Ben-Cohen 2011-10-20 151 } ac8954a41 drivers/remoteproc/remoteproc_rpmsg.c Ohad Ben-Cohen 2011-10-20 152 ac8954a41 drivers/remoteproc/remoteproc_rpmsg.c Ohad Ben-Cohen 2011-10-20 153 return 0; ac8954a41 drivers/remoteproc/remoteproc_rpmsg.c Ohad Ben-Cohen 2011-10-20 154 ac8954a41 drivers/remoteproc/remoteproc_rpmsg.c Ohad Ben-Cohen 2011-10-20 155 error: dab55bbaf drivers/remoteproc/remoteproc_virtio.c Ohad Ben-Cohen 2012-11-12 156 __rproc_virtio_del_vqs(vdev); ac8954a41 drivers/remoteproc/remoteproc_rpmsg.c Ohad Ben-Cohen 2011-10-20 157 return ret; ac8954a41 drivers/remoteproc/remoteproc_rpmsg.c Ohad Ben-Cohen 2011-10-20 158 } ac8954a41 drivers/remoteproc/remoteproc_rpmsg.c Ohad Ben-Cohen 2011-10-20 159 ac8954a41 drivers/remoteproc/remoteproc_rpmsg.c Ohad Ben-Cohen 2011-10-20 160 static u8 rproc_virtio_get_status(struct virtio_device *vdev) ac8954a41 drivers/remoteproc/remoteproc_rpmsg.c Ohad Ben-Cohen 2011-10-20 161 { 92b38f851 drivers/remoteproc/remoteproc_virtio.c Sjur Brændeland 2013-02-21 162 struct rproc_vdev *rvdev = vdev_to_rvdev(vdev); 92b38f851 drivers/remoteproc/remoteproc_virtio.c Sjur Brændeland 2013-02-21 163 struct fw_rsc_vdev *rsc; 92b38f851 drivers/remoteproc/remoteproc_virtio.c Sjur Brændeland 2013-02-21 164 92b38f851 drivers/remoteproc/remoteproc_virtio.c Sjur Brændeland 2013-02-21 165 rsc = (void *)rvdev->rproc->table_ptr + rvdev->rsc_offset; 92b38f851 drivers/remoteproc/remoteproc_virtio.c Sjur Brændeland 2013-02-21 166 92b38f851 drivers/remoteproc/remoteproc_virtio.c Sjur Brændeland 2013-02-21 167 return rsc->status; ac8954a41 drivers/remoteproc/remoteproc_rpmsg.c Ohad Ben-Cohen 2011-10-20 168 } ac8954a41 drivers/remoteproc/remoteproc_rpmsg.c Ohad Ben-Cohen 2011-10-20 169 ac8954a41 drivers/remoteproc/remoteproc_rpmsg.c Ohad Ben-Cohen 2011-10-20 170 static void rproc_virtio_set_status(struct virtio_device *vdev, u8 status) ac8954a41 drivers/remoteproc/remoteproc_rpmsg.c Ohad Ben-Cohen 2011-10-20 171 { 92b38f851 drivers/remoteproc/remoteproc_virtio.c Sjur Brændeland 2013-02-21 172 struct rproc_vdev *rvdev = vdev_to_rvdev(vdev); 92b38f851 drivers/remoteproc/remoteproc_virtio.c Sjur Brændeland 2013-02-21 173 struct fw_rsc_vdev *rsc; 92b38f851 drivers/remoteproc/remoteproc_virtio.c Sjur Brændeland 2013-02-21 174 92b38f851 drivers/remoteproc/remoteproc_virtio.c Sjur Brændeland 2013-02-21 175 rsc = (void *)rvdev->rproc->table_ptr + rvdev->rsc_offset; 92b38f851 drivers/remoteproc/remoteproc_virtio.c Sjur Brændeland 2013-02-21 176 92b38f851 drivers/remoteproc/remoteproc_virtio.c Sjur Brændeland 2013-02-21 177 rsc->status = status; 7a1869416 drivers/remoteproc/remoteproc_virtio.c Ohad Ben-Cohen 2012-02-13 178 dev_dbg(&vdev->dev, "status: %d\n", status); ac8954a41 drivers/remoteproc/remoteproc_rpmsg.c Ohad Ben-Cohen 2011-10-20 179 } ac8954a41 drivers/remoteproc/remoteproc_rpmsg.c Ohad Ben-Cohen 2011-10-20 180 ac8954a41 drivers/remoteproc/remoteproc_rpmsg.c Ohad Ben-Cohen 2011-10-20 181 static void rproc_virtio_reset(struct virtio_device *vdev) ac8954a41 drivers/remoteproc/remoteproc_rpmsg.c Ohad Ben-Cohen 2011-10-20 182 { 92b38f851 drivers/remoteproc/remoteproc_virtio.c Sjur Brændeland 2013-02-21 183 struct rproc_vdev *rvdev = vdev_to_rvdev(vdev); 92b38f851 drivers/remoteproc/remoteproc_virtio.c Sjur Brændeland 2013-02-21 184 struct fw_rsc_vdev *rsc; 92b38f851 drivers/remoteproc/remoteproc_virtio.c Sjur Brændeland 2013-02-21 185 92b38f851 drivers/remoteproc/remoteproc_virtio.c Sjur Brændeland 2013-02-21 186 rsc = (void *)rvdev->rproc->table_ptr + rvdev->rsc_offset; 92b38f851 drivers/remoteproc/remoteproc_virtio.c Sjur Brændeland 2013-02-21 187 92b38f851 drivers/remoteproc/remoteproc_virtio.c Sjur Brændeland 2013-02-21 188 rsc->status = 0; ac8954a41 drivers/remoteproc/remoteproc_rpmsg.c Ohad Ben-Cohen 2011-10-20 189 dev_dbg(&vdev->dev, "reset !\n"); ac8954a41 drivers/remoteproc/remoteproc_rpmsg.c Ohad Ben-Cohen 2011-10-20 190 } ac8954a41 drivers/remoteproc/remoteproc_rpmsg.c Ohad Ben-Cohen 2011-10-20 191 ac8954a41 drivers/remoteproc/remoteproc_rpmsg.c Ohad Ben-Cohen 2011-10-20 192 /* provide the vdev features as retrieved from the firmware */ d02547736 drivers/remoteproc/remoteproc_virtio.c Michael S. Tsirkin 2014-10-07 193 static u64 rproc_virtio_get_features(struct virtio_device *vdev) ac8954a41 drivers/remoteproc/remoteproc_rpmsg.c Ohad Ben-Cohen 2011-10-20 194 { 7a1869416 drivers/remoteproc/remoteproc_virtio.c Ohad Ben-Cohen 2012-02-13 195 struct rproc_vdev *rvdev = vdev_to_rvdev(vdev); 92b38f851 drivers/remoteproc/remoteproc_virtio.c Sjur Brændeland 2013-02-21 196 struct fw_rsc_vdev *rsc; 92b38f851 drivers/remoteproc/remoteproc_virtio.c Sjur Brændeland 2013-02-21 197 92b38f851 drivers/remoteproc/remoteproc_virtio.c Sjur Brændeland 2013-02-21 198 rsc = (void *)rvdev->rproc->table_ptr + rvdev->rsc_offset; ac8954a41 drivers/remoteproc/remoteproc_rpmsg.c Ohad Ben-Cohen 2011-10-20 199 92b38f851 drivers/remoteproc/remoteproc_virtio.c Sjur Brændeland 2013-02-21 200 return rsc->dfeatures; ac8954a41 drivers/remoteproc/remoteproc_rpmsg.c Ohad Ben-Cohen 2011-10-20 201 } ac8954a41 drivers/remoteproc/remoteproc_rpmsg.c Ohad Ben-Cohen 2011-10-20 202 5c609a5ef drivers/remoteproc/remoteproc_virtio.c Michael S. Tsirkin 2014-12-04 203 static int rproc_virtio_finalize_features(struct virtio_device *vdev) ac8954a41 drivers/remoteproc/remoteproc_rpmsg.c Ohad Ben-Cohen 2011-10-20 204 { 7a1869416 drivers/remoteproc/remoteproc_virtio.c Ohad Ben-Cohen 2012-02-13 205 struct rproc_vdev *rvdev = vdev_to_rvdev(vdev); 92b38f851 drivers/remoteproc/remoteproc_virtio.c Sjur Brændeland 2013-02-21 206 struct fw_rsc_vdev *rsc; 92b38f851 drivers/remoteproc/remoteproc_virtio.c Sjur Brændeland 2013-02-21 207 92b38f851 drivers/remoteproc/remoteproc_virtio.c Sjur Brændeland 2013-02-21 208 rsc = (void *)rvdev->rproc->table_ptr + rvdev->rsc_offset; ac8954a41 drivers/remoteproc/remoteproc_rpmsg.c Ohad Ben-Cohen 2011-10-20 209 ac8954a41 drivers/remoteproc/remoteproc_rpmsg.c Ohad Ben-Cohen 2011-10-20 210 /* Give virtio_ring a chance to accept features */ ac8954a41 drivers/remoteproc/remoteproc_rpmsg.c Ohad Ben-Cohen 2011-10-20 211 vring_transport_features(vdev); ac8954a41 drivers/remoteproc/remoteproc_rpmsg.c Ohad Ben-Cohen 2011-10-20 212 93d389f82 drivers/remoteproc/remoteproc_virtio.c Michael S. Tsirkin 2014-11-27 213 /* Make sure we don't have any features > 32 bits! */ 93d389f82 drivers/remoteproc/remoteproc_virtio.c Michael S. Tsirkin 2014-11-27 214 BUG_ON((u32)vdev->features != vdev->features); 93d389f82 drivers/remoteproc/remoteproc_virtio.c Michael S. Tsirkin 2014-11-27 215 ac8954a41 drivers/remoteproc/remoteproc_rpmsg.c Ohad Ben-Cohen 2011-10-20 216 /* ac8954a41 drivers/remoteproc/remoteproc_rpmsg.c Ohad Ben-Cohen 2011-10-20 217 * Remember the finalized features of our vdev, and provide it ac8954a41 drivers/remoteproc/remoteproc_rpmsg.c Ohad Ben-Cohen 2011-10-20 218 * to the remote processor once it is powered on. ac8954a41 drivers/remoteproc/remoteproc_rpmsg.c Ohad Ben-Cohen 2011-10-20 219 */ e16e12be3 drivers/remoteproc/remoteproc_virtio.c Michael S. Tsirkin 2014-10-07 220 rsc->gfeatures = vdev->features; 5c609a5ef drivers/remoteproc/remoteproc_virtio.c Michael S. Tsirkin 2014-12-04 221 5c609a5ef drivers/remoteproc/remoteproc_virtio.c Michael S. Tsirkin 2014-12-04 222 return 0; 92b38f851 drivers/remoteproc/remoteproc_virtio.c Sjur Brændeland 2013-02-21 223 } 92b38f851 drivers/remoteproc/remoteproc_virtio.c Sjur Brændeland 2013-02-21 224 f145928d4 drivers/remoteproc/remoteproc_virtio.c Anna, Suman 2016-08-12 225 static void rproc_virtio_get(struct virtio_device *vdev, unsigned int offset, f145928d4 drivers/remoteproc/remoteproc_virtio.c Anna, Suman 2016-08-12 226 void *buf, unsigned int len) 92b38f851 drivers/remoteproc/remoteproc_virtio.c Sjur Brændeland 2013-02-21 227 { 92b38f851 drivers/remoteproc/remoteproc_virtio.c Sjur Brændeland 2013-02-21 228 struct rproc_vdev *rvdev = vdev_to_rvdev(vdev); 92b38f851 drivers/remoteproc/remoteproc_virtio.c Sjur Brændeland 2013-02-21 229 struct fw_rsc_vdev *rsc; 92b38f851 drivers/remoteproc/remoteproc_virtio.c Sjur Brændeland 2013-02-21 230 void *cfg; 92b38f851 drivers/remoteproc/remoteproc_virtio.c Sjur Brændeland 2013-02-21 231 92b38f851 drivers/remoteproc/remoteproc_virtio.c Sjur Brændeland 2013-02-21 232 rsc = (void *)rvdev->rproc->table_ptr + rvdev->rsc_offset; 92b38f851 drivers/remoteproc/remoteproc_virtio.c Sjur Brændeland 2013-02-21 233 cfg = &rsc->vring[rsc->num_of_vrings]; 92b38f851 drivers/remoteproc/remoteproc_virtio.c Sjur Brændeland 2013-02-21 234 92b38f851 drivers/remoteproc/remoteproc_virtio.c Sjur Brændeland 2013-02-21 235 if (offset + len > rsc->config_len || offset + len < len) { 92b38f851 drivers/remoteproc/remoteproc_virtio.c Sjur Brændeland 2013-02-21 236 dev_err(&vdev->dev, "rproc_virtio_get: access out of bounds\n"); 92b38f851 drivers/remoteproc/remoteproc_virtio.c Sjur Brændeland 2013-02-21 237 return; 92b38f851 drivers/remoteproc/remoteproc_virtio.c Sjur Brændeland 2013-02-21 238 } 92b38f851 drivers/remoteproc/remoteproc_virtio.c Sjur Brændeland 2013-02-21 239 92b38f851 drivers/remoteproc/remoteproc_virtio.c Sjur Brændeland 2013-02-21 240 memcpy(buf, cfg + offset, len); 92b38f851 drivers/remoteproc/remoteproc_virtio.c Sjur Brændeland 2013-02-21 241 } 92b38f851 drivers/remoteproc/remoteproc_virtio.c Sjur Brændeland 2013-02-21 242 f145928d4 drivers/remoteproc/remoteproc_virtio.c Anna, Suman 2016-08-12 243 static void rproc_virtio_set(struct virtio_device *vdev, unsigned int offset, f145928d4 drivers/remoteproc/remoteproc_virtio.c Anna, Suman 2016-08-12 244 const void *buf, unsigned int len) 92b38f851 drivers/remoteproc/remoteproc_virtio.c Sjur Brændeland 2013-02-21 245 { 92b38f851 drivers/remoteproc/remoteproc_virtio.c Sjur Brændeland 2013-02-21 246 struct rproc_vdev *rvdev = vdev_to_rvdev(vdev); 92b38f851 drivers/remoteproc/remoteproc_virtio.c Sjur Brændeland 2013-02-21 247 struct fw_rsc_vdev *rsc; 92b38f851 drivers/remoteproc/remoteproc_virtio.c Sjur Brændeland 2013-02-21 248 void *cfg; 92b38f851 drivers/remoteproc/remoteproc_virtio.c Sjur Brændeland 2013-02-21 249 92b38f851 drivers/remoteproc/remoteproc_virtio.c Sjur Brændeland 2013-02-21 250 rsc = (void *)rvdev->rproc->table_ptr + rvdev->rsc_offset; 92b38f851 drivers/remoteproc/remoteproc_virtio.c Sjur Brændeland 2013-02-21 251 cfg = &rsc->vring[rsc->num_of_vrings]; 92b38f851 drivers/remoteproc/remoteproc_virtio.c Sjur Brændeland 2013-02-21 252 92b38f851 drivers/remoteproc/remoteproc_virtio.c Sjur Brændeland 2013-02-21 253 if (offset + len > rsc->config_len || offset + len < len) { 92b38f851 drivers/remoteproc/remoteproc_virtio.c Sjur Brændeland 2013-02-21 254 dev_err(&vdev->dev, "rproc_virtio_set: access out of bounds\n"); 92b38f851 drivers/remoteproc/remoteproc_virtio.c Sjur Brændeland 2013-02-21 255 return; 92b38f851 drivers/remoteproc/remoteproc_virtio.c Sjur Brændeland 2013-02-21 256 } 92b38f851 drivers/remoteproc/remoteproc_virtio.c Sjur Brændeland 2013-02-21 257 92b38f851 drivers/remoteproc/remoteproc_virtio.c Sjur Brændeland 2013-02-21 258 memcpy(cfg + offset, buf, len); ac8954a41 drivers/remoteproc/remoteproc_rpmsg.c Ohad Ben-Cohen 2011-10-20 259 } ac8954a41 drivers/remoteproc/remoteproc_rpmsg.c Ohad Ben-Cohen 2011-10-20 260 935039323 drivers/remoteproc/remoteproc_virtio.c Stephen Hemminger 2013-02-10 261 static const struct virtio_config_ops rproc_virtio_config_ops = { ac8954a41 drivers/remoteproc/remoteproc_rpmsg.c Ohad Ben-Cohen 2011-10-20 262 .get_features = rproc_virtio_get_features, ac8954a41 drivers/remoteproc/remoteproc_rpmsg.c Ohad Ben-Cohen 2011-10-20 263 .finalize_features = rproc_virtio_finalize_features, ac8954a41 drivers/remoteproc/remoteproc_rpmsg.c Ohad Ben-Cohen 2011-10-20 @264 .find_vqs = rproc_virtio_find_vqs, ac8954a41 drivers/remoteproc/remoteproc_rpmsg.c Ohad Ben-Cohen 2011-10-20 265 .del_vqs = rproc_virtio_del_vqs, ac8954a41 drivers/remoteproc/remoteproc_rpmsg.c Ohad Ben-Cohen 2011-10-20 266 .reset = rproc_virtio_reset, ac8954a41 drivers/remoteproc/remoteproc_rpmsg.c Ohad Ben-Cohen 2011-10-20 267 .set_status = rproc_virtio_set_status, :::::: The code at line 106 was first introduced by commit :::::: 17bb6d40880d4178f5f8a75900ed8c9ff47d3fb2 virtio-ring: move queue_index to vring_virtqueue :::::: TO: Jason Wang <jasowang@xxxxxxxxxx> :::::: CC: Rusty Russell <rusty@xxxxxxxxxxxxxxx> --- 0-DAY kernel test infrastructure Open Source Technology Center https://lists.01.org/pipermail/kbuild-all Intel Corporation
Attachment:
.config.gz
Description: application/gzip