Lines Matching refs:private

22 	struct vfio_ccw_private *private;
26 private = dev_get_drvdata(mdev_parent_dev(mdev));
27 sch = private->sch;
42 private->state = VFIO_CCW_STATE_IDLE;
51 struct vfio_ccw_private *private =
61 if (!cp_iova_pinned(&private->cp, unmap->iova))
64 if (vfio_ccw_mdev_reset(private->mdev))
67 cp_free(&private->cp);
90 struct vfio_ccw_private *private = dev_get_drvdata(dev);
92 return sprintf(buf, "%d\n", atomic_read(&private->avail));
115 struct vfio_ccw_private *private =
118 if (private->state == VFIO_CCW_STATE_NOT_OPER)
121 if (atomic_dec_if_positive(&private->avail) < 0)
124 private->mdev = mdev;
125 private->state = VFIO_CCW_STATE_IDLE;
128 mdev_uuid(mdev), private->sch->schid.cssid,
129 private->sch->schid.ssid,
130 private->sch->schid.sch_no);
137 struct vfio_ccw_private *private =
141 mdev_uuid(mdev), private->sch->schid.cssid,
142 private->sch->schid.ssid,
143 private->sch->schid.sch_no);
145 if ((private->state != VFIO_CCW_STATE_NOT_OPER) &&
146 (private->state != VFIO_CCW_STATE_STANDBY)) {
147 if (!vfio_ccw_sch_quiesce(private->sch))
148 private->state = VFIO_CCW_STATE_STANDBY;
152 cp_free(&private->cp);
153 private->mdev = NULL;
154 atomic_inc(&private->avail);
161 struct vfio_ccw_private *private =
166 private->nb.notifier_call = vfio_ccw_mdev_notifier;
169 &events, &private->nb);
173 ret = vfio_ccw_register_async_dev_regions(private);
177 ret = vfio_ccw_register_schib_dev_regions(private);
181 ret = vfio_ccw_register_crw_dev_regions(private);
188 vfio_ccw_unregister_dev_regions(private);
190 &private->nb);
196 struct vfio_ccw_private *private =
199 if ((private->state != VFIO_CCW_STATE_NOT_OPER) &&
200 (private->state != VFIO_CCW_STATE_STANDBY)) {
202 private->state = VFIO_CCW_STATE_STANDBY;
206 cp_free(&private->cp);
207 vfio_ccw_unregister_dev_regions(private);
209 &private->nb);
212 static ssize_t vfio_ccw_mdev_read_io_region(struct vfio_ccw_private *private,
223 mutex_lock(&private->io_mutex);
224 region = private->io_region;
229 mutex_unlock(&private->io_mutex);
239 struct vfio_ccw_private *private;
241 private = dev_get_drvdata(mdev_parent_dev(mdev));
243 if (index >= VFIO_CCW_NUM_REGIONS + private->num_regions)
248 return vfio_ccw_mdev_read_io_region(private, buf, count, ppos);
251 return private->region[index].ops->read(private, buf, count,
258 static ssize_t vfio_ccw_mdev_write_io_region(struct vfio_ccw_private *private,
269 if (!mutex_trylock(&private->io_mutex))
272 region = private->io_region;
278 vfio_ccw_fsm_event(private, VFIO_CCW_EVENT_IO_REQ);
282 mutex_unlock(&private->io_mutex);
292 struct vfio_ccw_private *private;
294 private = dev_get_drvdata(mdev_parent_dev(mdev));
296 if (index >= VFIO_CCW_NUM_REGIONS + private->num_regions)
301 return vfio_ccw_mdev_write_io_region(private, buf, count, ppos);
304 return private->region[index].ops->write(private, buf, count,
314 struct vfio_ccw_private *private;
316 private = dev_get_drvdata(mdev_parent_dev(mdev));
318 info->num_regions = VFIO_CCW_NUM_REGIONS + private->num_regions;
328 struct vfio_ccw_private *private;
331 private = dev_get_drvdata(mdev_parent_dev(mdev));
348 VFIO_CCW_NUM_REGIONS + private->num_regions)
353 private->num_regions);
358 info->size = private->region[i].size;
359 info->flags = private->region[i].flags;
361 cap_type.type = private->region[i].type;
362 cap_type.subtype = private->region[i].subtype;
410 struct vfio_ccw_private *private;
416 private = dev_get_drvdata(mdev_parent_dev(mdev));
420 ctx = &private->io_trigger;
423 ctx = &private->crw_trigger;
479 int vfio_ccw_register_dev_region(struct vfio_ccw_private *private,
486 region = krealloc(private->region,
487 (private->num_regions + 1) * sizeof(*region),
492 private->region = region;
493 private->region[private->num_regions].type = VFIO_REGION_TYPE_CCW;
494 private->region[private->num_regions].subtype = subtype;
495 private->region[private->num_regions].ops = ops;
496 private->region[private->num_regions].size = size;
497 private->region[private->num_regions].flags = flags;
498 private->region[private->num_regions].data = data;
500 private->num_regions++;
505 void vfio_ccw_unregister_dev_regions(struct vfio_ccw_private *private)
509 for (i = 0; i < private->num_regions; i++)
510 private->region[i].ops->release(private, &private->region[i]);
511 private->num_regions = 0;
512 kfree(private->region);
513 private->region = NULL;