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, \