Lines Matching refs:uref_multi
444 struct hiddev_usage_ref_multi *uref_multi = NULL; in hiddev_ioctl_usage() local
450 uref_multi = kmalloc(sizeof(struct hiddev_usage_ref_multi), GFP_KERNEL); in hiddev_ioctl_usage()
451 if (!uref_multi) in hiddev_ioctl_usage()
453 uref = &uref_multi->uref; in hiddev_ioctl_usage()
455 if (copy_from_user(uref_multi, user_arg, in hiddev_ioctl_usage()
456 sizeof(*uref_multi))) in hiddev_ioctl_usage()
522 if (uref_multi->num_values > HID_MAX_MULTI_USAGES || in hiddev_ioctl_usage()
523 uref->usage_index + uref_multi->num_values > in hiddev_ioctl_usage()
530 uref_multi->num_values); in hiddev_ioctl_usage()
546 kfree(uref_multi); in hiddev_ioctl_usage()
549 for (i = 0; i < uref_multi->num_values; i++) in hiddev_ioctl_usage()
550 uref_multi->values[i] = in hiddev_ioctl_usage()
552 if (copy_to_user(user_arg, uref_multi, in hiddev_ioctl_usage()
553 sizeof(*uref_multi))) in hiddev_ioctl_usage()
557 for (i = 0; i < uref_multi->num_values; i++) in hiddev_ioctl_usage()
559 uref_multi->values[i]; in hiddev_ioctl_usage()
564 kfree(uref_multi); in hiddev_ioctl_usage()
567 kfree(uref_multi); in hiddev_ioctl_usage()
570 kfree(uref_multi); in hiddev_ioctl_usage()