urd               104 drivers/s390/char/vmur.c 	struct urdev *urd;
urd               106 drivers/s390/char/vmur.c 	urd = kzalloc(sizeof(struct urdev), GFP_KERNEL);
urd               107 drivers/s390/char/vmur.c 	if (!urd)
urd               109 drivers/s390/char/vmur.c 	urd->reclen = cdev->id.driver_info;
urd               110 drivers/s390/char/vmur.c 	ccw_device_get_id(cdev, &urd->dev_id);
urd               111 drivers/s390/char/vmur.c 	mutex_init(&urd->io_mutex);
urd               112 drivers/s390/char/vmur.c 	init_waitqueue_head(&urd->wait);
urd               113 drivers/s390/char/vmur.c 	spin_lock_init(&urd->open_lock);
urd               114 drivers/s390/char/vmur.c 	refcount_set(&urd->ref_count,  1);
urd               115 drivers/s390/char/vmur.c 	urd->cdev = cdev;
urd               117 drivers/s390/char/vmur.c 	return urd;
urd               120 drivers/s390/char/vmur.c static void urdev_free(struct urdev *urd)
urd               122 drivers/s390/char/vmur.c 	TRACE("urdev_free: %p\n", urd);
urd               123 drivers/s390/char/vmur.c 	if (urd->cdev)
urd               124 drivers/s390/char/vmur.c 		put_device(&urd->cdev->dev);
urd               125 drivers/s390/char/vmur.c 	kfree(urd);
urd               128 drivers/s390/char/vmur.c static void urdev_get(struct urdev *urd)
urd               130 drivers/s390/char/vmur.c 	refcount_inc(&urd->ref_count);
urd               135 drivers/s390/char/vmur.c 	struct urdev *urd;
urd               139 drivers/s390/char/vmur.c 	urd = dev_get_drvdata(&cdev->dev);
urd               140 drivers/s390/char/vmur.c 	if (urd)
urd               141 drivers/s390/char/vmur.c 		urdev_get(urd);
urd               143 drivers/s390/char/vmur.c 	return urd;
urd               150 drivers/s390/char/vmur.c 	struct urdev *urd;
urd               156 drivers/s390/char/vmur.c 	urd = urdev_get_from_cdev(cdev);
urd               158 drivers/s390/char/vmur.c 	return urd;
urd               161 drivers/s390/char/vmur.c static void urdev_put(struct urdev *urd)
urd               163 drivers/s390/char/vmur.c 	if (refcount_dec_and_test(&urd->ref_count))
urd               164 drivers/s390/char/vmur.c 		urdev_free(urd);
urd               178 drivers/s390/char/vmur.c 	struct urdev *urd = dev_get_drvdata(&cdev->dev);
urd               181 drivers/s390/char/vmur.c 	if (urd->open_flag) {
urd               271 drivers/s390/char/vmur.c static int do_ur_io(struct urdev *urd, struct ccw1 *cpa)
urd               274 drivers/s390/char/vmur.c 	struct ccw_device *cdev = urd->cdev;
urd               279 drivers/s390/char/vmur.c 	rc = mutex_lock_interruptible(&urd->io_mutex);
urd               283 drivers/s390/char/vmur.c 	urd->io_done = &event;
urd               298 drivers/s390/char/vmur.c 	mutex_unlock(&urd->io_mutex);
urd               308 drivers/s390/char/vmur.c 	struct urdev *urd;
urd               319 drivers/s390/char/vmur.c 	urd = dev_get_drvdata(&cdev->dev);
urd               320 drivers/s390/char/vmur.c 	BUG_ON(!urd);
urd               323 drivers/s390/char/vmur.c 		urd->io_request_rc = PTR_ERR(irb);
urd               325 drivers/s390/char/vmur.c 		urd->io_request_rc = 0;
urd               327 drivers/s390/char/vmur.c 		urd->io_request_rc = -EIO;
urd               329 drivers/s390/char/vmur.c 	complete(urd->io_done);
urd               338 drivers/s390/char/vmur.c 	struct urdev *urd;
urd               341 drivers/s390/char/vmur.c 	urd = urdev_get_from_cdev(to_ccwdev(dev));
urd               342 drivers/s390/char/vmur.c 	if (!urd)
urd               344 drivers/s390/char/vmur.c 	rc = sprintf(buf, "%zu\n", urd->reclen);
urd               345 drivers/s390/char/vmur.c 	urdev_put(urd);
urd               368 drivers/s390/char/vmur.c static int get_urd_class(struct urdev *urd)
urd               373 drivers/s390/char/vmur.c 	ur_diag210.vrdcdvno = urd->dev_id.devno;
urd               392 drivers/s390/char/vmur.c static struct urfile *urfile_alloc(struct urdev *urd)
urd               399 drivers/s390/char/vmur.c 	urf->urd = urd;
urd               401 drivers/s390/char/vmur.c 	TRACE("urfile_alloc: urd=%p urf=%p rl=%zu\n", urd, urf,
urd               409 drivers/s390/char/vmur.c 	TRACE("urfile_free: urf=%p urd=%p\n", urf, urf->urd);
urd               416 drivers/s390/char/vmur.c static ssize_t do_write(struct urdev *urd, const char __user *udata,
urd               426 drivers/s390/char/vmur.c 	rc = do_ur_io(urd, cpa);
urd               430 drivers/s390/char/vmur.c 	if (urd->io_request_rc) {
urd               431 drivers/s390/char/vmur.c 		rc = urd->io_request_rc;
urd               458 drivers/s390/char/vmur.c 	return do_write(urf->urd, udata, count, urf->dev_reclen, ppos);
urd               517 drivers/s390/char/vmur.c 	struct urdev *urd;
urd               519 drivers/s390/char/vmur.c 	urd = ((struct urfile *) file->private_data)->urd;
urd               522 drivers/s390/char/vmur.c 	rc = diag_position_to_record(urd->dev_id.devno, *offs / PAGE_SIZE + 1);
urd               536 drivers/s390/char/vmur.c 		rc = diag_read_file(urd->dev_id.devno, buf);
urd               563 drivers/s390/char/vmur.c 	struct urdev *urd;
urd               571 drivers/s390/char/vmur.c 	urd = ((struct urfile *) file->private_data)->urd;
urd               572 drivers/s390/char/vmur.c 	rc = mutex_lock_interruptible(&urd->io_mutex);
urd               576 drivers/s390/char/vmur.c 	mutex_unlock(&urd->io_mutex);
urd               599 drivers/s390/char/vmur.c static int verify_uri_device(struct urdev *urd)
urd               626 drivers/s390/char/vmur.c 	rc = diag_read_file(urd->dev_id.devno, buf);
urd               647 drivers/s390/char/vmur.c static int verify_device(struct urdev *urd)
urd               649 drivers/s390/char/vmur.c 	switch (urd->class) {
urd               653 drivers/s390/char/vmur.c 		return verify_uri_device(urd);
urd               659 drivers/s390/char/vmur.c static int get_uri_file_reclen(struct urdev *urd)
urd               680 drivers/s390/char/vmur.c static int get_file_reclen(struct urdev *urd)
urd               682 drivers/s390/char/vmur.c 	switch (urd->class) {
urd               686 drivers/s390/char/vmur.c 		return get_uri_file_reclen(urd);
urd               695 drivers/s390/char/vmur.c 	struct urdev *urd;
urd               710 drivers/s390/char/vmur.c 	urd = urdev_get_from_devno(devno);
urd               711 drivers/s390/char/vmur.c 	if (!urd) {
urd               716 drivers/s390/char/vmur.c 	spin_lock(&urd->open_lock);
urd               717 drivers/s390/char/vmur.c 	while (urd->open_flag) {
urd               718 drivers/s390/char/vmur.c 		spin_unlock(&urd->open_lock);
urd               723 drivers/s390/char/vmur.c 		if (wait_event_interruptible(urd->wait, urd->open_flag == 0)) {
urd               727 drivers/s390/char/vmur.c 		spin_lock(&urd->open_lock);
urd               729 drivers/s390/char/vmur.c 	urd->open_flag++;
urd               730 drivers/s390/char/vmur.c 	spin_unlock(&urd->open_lock);
urd               734 drivers/s390/char/vmur.c 	if (((accmode == O_RDONLY) && (urd->class != DEV_CLASS_UR_I)) ||
urd               735 drivers/s390/char/vmur.c 	    ((accmode == O_WRONLY) && (urd->class != DEV_CLASS_UR_O))) {
urd               736 drivers/s390/char/vmur.c 		TRACE("ur_open: unsupported dev class (%d)\n", urd->class);
urd               741 drivers/s390/char/vmur.c 	rc = verify_device(urd);
urd               745 drivers/s390/char/vmur.c 	urf = urfile_alloc(urd);
urd               751 drivers/s390/char/vmur.c 	urf->dev_reclen = urd->reclen;
urd               752 drivers/s390/char/vmur.c 	rc = get_file_reclen(urd);
urd               762 drivers/s390/char/vmur.c 	spin_lock(&urd->open_lock);
urd               763 drivers/s390/char/vmur.c 	urd->open_flag--;
urd               764 drivers/s390/char/vmur.c 	spin_unlock(&urd->open_lock);
urd               766 drivers/s390/char/vmur.c 	urdev_put(urd);
urd               776 drivers/s390/char/vmur.c 	spin_lock(&urf->urd->open_lock);
urd               777 drivers/s390/char/vmur.c 	urf->urd->open_flag--;
urd               778 drivers/s390/char/vmur.c 	spin_unlock(&urf->urd->open_lock);
urd               779 drivers/s390/char/vmur.c 	wake_up_interruptible(&urf->urd->wait);
urd               780 drivers/s390/char/vmur.c 	urdev_put(urf->urd);
urd               819 drivers/s390/char/vmur.c 	struct urdev *urd;
urd               825 drivers/s390/char/vmur.c 	urd = urdev_alloc(cdev);
urd               826 drivers/s390/char/vmur.c 	if (!urd) {
urd               839 drivers/s390/char/vmur.c 	urd->class = get_urd_class(urd);
urd               840 drivers/s390/char/vmur.c 	if (urd->class < 0) {
urd               841 drivers/s390/char/vmur.c 		rc = urd->class;
urd               844 drivers/s390/char/vmur.c 	if ((urd->class != DEV_CLASS_UR_I) && (urd->class != DEV_CLASS_UR_O)) {
urd               849 drivers/s390/char/vmur.c 	dev_set_drvdata(&cdev->dev, urd);
urd               858 drivers/s390/char/vmur.c 	urdev_put(urd);
urd               866 drivers/s390/char/vmur.c 	struct urdev *urd;
urd               873 drivers/s390/char/vmur.c 	urd = urdev_get_from_cdev(cdev);
urd               874 drivers/s390/char/vmur.c 	if (!urd) {
urd               880 drivers/s390/char/vmur.c 	if (urd->char_device) {
urd               886 drivers/s390/char/vmur.c 	minor = urd->dev_id.devno;
urd               889 drivers/s390/char/vmur.c 	urd->char_device = cdev_alloc();
urd               890 drivers/s390/char/vmur.c 	if (!urd->char_device) {
urd               895 drivers/s390/char/vmur.c 	urd->char_device->ops = &ur_fops;
urd               896 drivers/s390/char/vmur.c 	urd->char_device->owner = ur_fops.owner;
urd               898 drivers/s390/char/vmur.c 	rc = cdev_add(urd->char_device, MKDEV(major, minor), 1);
urd               901 drivers/s390/char/vmur.c 	if (urd->cdev->id.cu_type == READER_PUNCH_DEVTYPE) {
urd               902 drivers/s390/char/vmur.c 		if (urd->class == DEV_CLASS_UR_I)
urd               904 drivers/s390/char/vmur.c 		if (urd->class == DEV_CLASS_UR_O)
urd               906 drivers/s390/char/vmur.c 	} else if (urd->cdev->id.cu_type == PRINTER_DEVTYPE) {
urd               913 drivers/s390/char/vmur.c 	urd->device = device_create(vmur_class, &cdev->dev,
urd               914 drivers/s390/char/vmur.c 				    urd->char_device->dev, NULL, "%s", node_id);
urd               915 drivers/s390/char/vmur.c 	if (IS_ERR(urd->device)) {
urd               916 drivers/s390/char/vmur.c 		rc = PTR_ERR(urd->device);
urd               920 drivers/s390/char/vmur.c 	urdev_put(urd);
urd               925 drivers/s390/char/vmur.c 	cdev_del(urd->char_device);
urd               926 drivers/s390/char/vmur.c 	urd->char_device = NULL;
urd               928 drivers/s390/char/vmur.c 	urdev_put(urd);
urd               936 drivers/s390/char/vmur.c 	struct urdev *urd;
urd               940 drivers/s390/char/vmur.c 	urd = urdev_get_from_cdev(cdev);
urd               941 drivers/s390/char/vmur.c 	if (!urd)
urd               944 drivers/s390/char/vmur.c 	if (!urd->char_device) {
urd               949 drivers/s390/char/vmur.c 	if (!force && (refcount_read(&urd->ref_count) > 2)) {
urd               955 drivers/s390/char/vmur.c 	device_destroy(vmur_class, urd->char_device->dev);
urd               956 drivers/s390/char/vmur.c 	cdev_del(urd->char_device);
urd               957 drivers/s390/char/vmur.c 	urd->char_device = NULL;
urd               961 drivers/s390/char/vmur.c 	urdev_put(urd);
urd                86 drivers/s390/char/vmur.h 	struct urdev *urd;
urd                89 virt/kvm/arm/vgic/vgic-mmio.h #define REGISTER_DESC_WITH_LENGTH_UACCESS(off, rd, wr, urd, uwr, length, acc) \
urd                97 virt/kvm/arm/vgic/vgic-mmio.h 		.uaccess_read = urd,					\