Lines Matching refs:ps

81 	struct usb_dev_state *ps;  member
86 struct usb_dev_state *ps; member
157 static int connected(struct usb_dev_state *ps) in connected() argument
159 return (!list_empty(&ps->list) && in connected()
160 ps->dev->state != USB_STATE_NOTATTACHED); in connected()
165 struct usb_dev_state *ps = usbm->ps; in dec_usb_memory_use_count() local
168 spin_lock_irqsave(&ps->lock, flags); in dec_usb_memory_use_count()
172 spin_unlock_irqrestore(&ps->lock, flags); in dec_usb_memory_use_count()
174 usb_free_coherent(ps->dev, usbm->size, usbm->mem, in dec_usb_memory_use_count()
180 spin_unlock_irqrestore(&ps->lock, flags); in dec_usb_memory_use_count()
189 spin_lock_irqsave(&usbm->ps->lock, flags); in usbdev_vm_open()
191 spin_unlock_irqrestore(&usbm->ps->lock, flags); in usbdev_vm_open()
209 struct usb_dev_state *ps = file->private_data; in usbdev_mmap() local
226 mem = usb_alloc_coherent(ps->dev, size, GFP_USER | __GFP_NOWARN, in usbdev_mmap()
238 usbm->ps = ps; in usbdev_mmap()
255 spin_lock_irqsave(&ps->lock, flags); in usbdev_mmap()
256 list_add_tail(&usbm->memlist, &ps->memory_list); in usbdev_mmap()
257 spin_unlock_irqrestore(&ps->lock, flags); in usbdev_mmap()
272 struct usb_dev_state *ps = file->private_data; in usbdev_read() local
273 struct usb_device *dev = ps->dev; in usbdev_read()
281 if (!connected(ps)) { in usbdev_read()
400 struct usb_dev_state *ps = as->ps; in async_newpending() local
403 spin_lock_irqsave(&ps->lock, flags); in async_newpending()
404 list_add_tail(&as->asynclist, &ps->async_pending); in async_newpending()
405 spin_unlock_irqrestore(&ps->lock, flags); in async_newpending()
410 struct usb_dev_state *ps = as->ps; in async_removepending() local
413 spin_lock_irqsave(&ps->lock, flags); in async_removepending()
415 spin_unlock_irqrestore(&ps->lock, flags); in async_removepending()
418 static struct async *async_getcompleted(struct usb_dev_state *ps) in async_getcompleted() argument
423 spin_lock_irqsave(&ps->lock, flags); in async_getcompleted()
424 if (!list_empty(&ps->async_completed)) { in async_getcompleted()
425 as = list_entry(ps->async_completed.next, struct async, in async_getcompleted()
429 spin_unlock_irqrestore(&ps->lock, flags); in async_getcompleted()
433 static struct async *async_getpending(struct usb_dev_state *ps, in async_getpending() argument
438 list_for_each_entry(as, &ps->async_pending, asynclist) in async_getpending()
543 static void cancel_bulk_urbs(struct usb_dev_state *ps, unsigned bulk_addr) in cancel_bulk_urbs() argument
544 __releases(ps->lock) in cancel_bulk_urbs()
545 __acquires(ps->lock) in cancel_bulk_urbs()
555 list_for_each_entry(as, &ps->async_pending, asynclist) { in cancel_bulk_urbs()
563 ps->disabled_bulk_eps |= (1 << bulk_addr); in cancel_bulk_urbs()
567 list_for_each_entry(as, &ps->async_pending, asynclist) { in cancel_bulk_urbs()
572 spin_unlock(&ps->lock); /* Allow completions */ in cancel_bulk_urbs()
575 spin_lock(&ps->lock); in cancel_bulk_urbs()
584 struct usb_dev_state *ps = as->ps; in async_completed() local
591 spin_lock_irqsave(&ps->lock, flags); in async_completed()
592 list_move_tail(&as->asynclist, &ps->async_completed); in async_completed()
612 cancel_bulk_urbs(ps, as->bulk_addr); in async_completed()
614 wake_up(&ps->wait); in async_completed()
615 spin_unlock_irqrestore(&ps->lock, flags); in async_completed()
624 static void destroy_async(struct usb_dev_state *ps, struct list_head *list) in destroy_async() argument
630 spin_lock_irqsave(&ps->lock, flags); in destroy_async()
638 spin_unlock_irqrestore(&ps->lock, flags); in destroy_async()
641 spin_lock_irqsave(&ps->lock, flags); in destroy_async()
643 spin_unlock_irqrestore(&ps->lock, flags); in destroy_async()
646 static void destroy_async_on_interface(struct usb_dev_state *ps, in destroy_async_on_interface() argument
653 spin_lock_irqsave(&ps->lock, flags); in destroy_async_on_interface()
654 list_for_each_safe(p, q, &ps->async_pending) in destroy_async_on_interface()
657 spin_unlock_irqrestore(&ps->lock, flags); in destroy_async_on_interface()
658 destroy_async(ps, &hitlist); in destroy_async_on_interface()
661 static void destroy_all_async(struct usb_dev_state *ps) in destroy_all_async() argument
663 destroy_async(ps, &ps->async_pending); in destroy_all_async()
680 struct usb_dev_state *ps = usb_get_intfdata(intf); in driver_disconnect() local
683 if (!ps) in driver_disconnect()
690 if (likely(ifnum < 8*sizeof(ps->ifclaimed))) in driver_disconnect()
691 clear_bit(ifnum, &ps->ifclaimed); in driver_disconnect()
699 destroy_async_on_interface(ps, ifnum); in driver_disconnect()
723 static int claimintf(struct usb_dev_state *ps, unsigned int ifnum) in claimintf() argument
725 struct usb_device *dev = ps->dev; in claimintf()
729 if (ifnum >= 8*sizeof(ps->ifclaimed)) in claimintf()
732 if (test_bit(ifnum, &ps->ifclaimed)) in claimintf()
735 if (ps->privileges_dropped && in claimintf()
736 !test_bit(ifnum, &ps->interface_allowed_mask)) in claimintf()
743 err = usb_driver_claim_interface(&usbfs_driver, intf, ps); in claimintf()
745 set_bit(ifnum, &ps->ifclaimed); in claimintf()
749 static int releaseintf(struct usb_dev_state *ps, unsigned int ifnum) in releaseintf() argument
756 if (ifnum >= 8*sizeof(ps->ifclaimed)) in releaseintf()
758 dev = ps->dev; in releaseintf()
762 else if (test_and_clear_bit(ifnum, &ps->ifclaimed)) { in releaseintf()
769 static int checkintf(struct usb_dev_state *ps, unsigned int ifnum) in checkintf() argument
771 if (ps->dev->state != USB_STATE_CONFIGURED) in checkintf()
773 if (ifnum >= 8*sizeof(ps->ifclaimed)) in checkintf()
775 if (test_bit(ifnum, &ps->ifclaimed)) in checkintf()
778 dev_warn(&ps->dev->dev, "usbfs: process %d (%s) did not claim " in checkintf()
781 return claimintf(ps, ifnum); in checkintf()
809 static int check_ctrlrecip(struct usb_dev_state *ps, unsigned int requesttype, in check_ctrlrecip() argument
815 if (ps->dev->state != USB_STATE_UNAUTHENTICATED in check_ctrlrecip()
816 && ps->dev->state != USB_STATE_ADDRESS in check_ctrlrecip()
817 && ps->dev->state != USB_STATE_CONFIGURED) in check_ctrlrecip()
828 alt_setting = usb_find_alt_setting(ps->dev->actconfig, in check_ctrlrecip()
840 ret = findintfep(ps->dev, index); in check_ctrlrecip()
850 ret = findintfep(ps->dev, index ^ 0x80); in check_ctrlrecip()
852 dev_info(&ps->dev->dev, in check_ctrlrecip()
858 ret = checkintf(ps, ret); in check_ctrlrecip()
862 ret = checkintf(ps, index); in check_ctrlrecip()
877 static int parse_usbdevfs_streams(struct usb_dev_state *ps, in parse_usbdevfs_streams() argument
910 eps[i] = ep_to_host_endpoint(ps->dev, ep); in parse_usbdevfs_streams()
917 ifnum = findintfep(ps->dev, ep); in parse_usbdevfs_streams()
924 ret = checkintf(ps, ifnum); in parse_usbdevfs_streams()
927 intf = usb_ifnum_to_if(ps->dev, ifnum); in parse_usbdevfs_streams()
972 struct usb_dev_state *ps; in usbdev_open() local
976 ps = kzalloc(sizeof(struct usb_dev_state), GFP_KERNEL); in usbdev_open()
977 if (!ps) in usbdev_open()
1002 ps->dev = dev; in usbdev_open()
1003 ps->file = file; in usbdev_open()
1004 ps->interface_allowed_mask = 0xFFFFFFFF; /* 32 bits */ in usbdev_open()
1005 spin_lock_init(&ps->lock); in usbdev_open()
1006 INIT_LIST_HEAD(&ps->list); in usbdev_open()
1007 INIT_LIST_HEAD(&ps->async_pending); in usbdev_open()
1008 INIT_LIST_HEAD(&ps->async_completed); in usbdev_open()
1009 INIT_LIST_HEAD(&ps->memory_list); in usbdev_open()
1010 init_waitqueue_head(&ps->wait); in usbdev_open()
1011 ps->disc_pid = get_pid(task_pid(current)); in usbdev_open()
1012 ps->cred = get_current_cred(); in usbdev_open()
1014 list_add_tail(&ps->list, &dev->filelist); in usbdev_open()
1015 file->private_data = ps; in usbdev_open()
1025 kfree(ps); in usbdev_open()
1031 struct usb_dev_state *ps = file->private_data; in usbdev_release() local
1032 struct usb_device *dev = ps->dev; in usbdev_release()
1037 usb_hub_release_all_ports(dev, ps); in usbdev_release()
1039 list_del_init(&ps->list); in usbdev_release()
1041 for (ifnum = 0; ps->ifclaimed && ifnum < 8*sizeof(ps->ifclaimed); in usbdev_release()
1043 if (test_bit(ifnum, &ps->ifclaimed)) in usbdev_release()
1044 releaseintf(ps, ifnum); in usbdev_release()
1046 destroy_all_async(ps); in usbdev_release()
1050 put_pid(ps->disc_pid); in usbdev_release()
1051 put_cred(ps->cred); in usbdev_release()
1053 as = async_getcompleted(ps); in usbdev_release()
1056 as = async_getcompleted(ps); in usbdev_release()
1059 kfree(ps); in usbdev_release()
1063 static int proc_control(struct usb_dev_state *ps, void __user *arg) in proc_control() argument
1065 struct usb_device *dev = ps->dev; in proc_control()
1074 ret = check_ctrlrecip(ps, ctrl.bRequestType, ctrl.bRequest, in proc_control()
1150 static int proc_bulk(struct usb_dev_state *ps, void __user *arg) in proc_bulk() argument
1152 struct usb_device *dev = ps->dev; in proc_bulk()
1161 ret = findintfep(ps->dev, bulk.ep); in proc_bulk()
1164 ret = checkintf(ps, ret); in proc_bulk()
1238 static int proc_resetep(struct usb_dev_state *ps, void __user *arg) in proc_resetep() argument
1245 ret = findintfep(ps->dev, ep); in proc_resetep()
1248 ret = checkintf(ps, ret); in proc_resetep()
1251 check_reset_of_active_ep(ps->dev, ep, "RESETEP"); in proc_resetep()
1252 usb_reset_endpoint(ps->dev, ep); in proc_resetep()
1256 static int proc_clearhalt(struct usb_dev_state *ps, void __user *arg) in proc_clearhalt() argument
1264 ret = findintfep(ps->dev, ep); in proc_clearhalt()
1267 ret = checkintf(ps, ret); in proc_clearhalt()
1270 check_reset_of_active_ep(ps->dev, ep, "CLEAR_HALT"); in proc_clearhalt()
1272 pipe = usb_rcvbulkpipe(ps->dev, ep & 0x7f); in proc_clearhalt()
1274 pipe = usb_sndbulkpipe(ps->dev, ep & 0x7f); in proc_clearhalt()
1276 return usb_clear_halt(ps->dev, pipe); in proc_clearhalt()
1279 static int proc_getdriver(struct usb_dev_state *ps, void __user *arg) in proc_getdriver() argument
1287 intf = usb_ifnum_to_if(ps->dev, gd.interface); in proc_getdriver()
1298 static int proc_connectinfo(struct usb_dev_state *ps, void __user *arg) in proc_connectinfo() argument
1303 ci.devnum = ps->dev->devnum; in proc_connectinfo()
1304 ci.slow = ps->dev->speed == USB_SPEED_LOW; in proc_connectinfo()
1311 static int proc_resetdevice(struct usb_dev_state *ps) in proc_resetdevice() argument
1313 struct usb_host_config *actconfig = ps->dev->actconfig; in proc_resetdevice()
1321 if (ps->privileges_dropped && actconfig) { in proc_resetdevice()
1326 !test_bit(number, &ps->ifclaimed)) { in proc_resetdevice()
1327 dev_warn(&ps->dev->dev, in proc_resetdevice()
1335 return usb_reset_device(ps->dev); in proc_resetdevice()
1338 static int proc_setintf(struct usb_dev_state *ps, void __user *arg) in proc_setintf() argument
1345 ret = checkintf(ps, setintf.interface); in proc_setintf()
1349 destroy_async_on_interface(ps, setintf.interface); in proc_setintf()
1351 return usb_set_interface(ps->dev, setintf.interface, in proc_setintf()
1355 static int proc_setconfig(struct usb_dev_state *ps, void __user *arg) in proc_setconfig() argument
1364 actconfig = ps->dev->actconfig; in proc_setconfig()
1375 dev_warn(&ps->dev->dev, in proc_setconfig()
1395 status = usb_reset_configuration(ps->dev); in proc_setconfig()
1397 status = usb_set_configuration(ps->dev, u); in proc_setconfig()
1404 find_memory_area(struct usb_dev_state *ps, const struct usbdevfs_urb *uurb) in find_memory_area() argument
1410 spin_lock_irqsave(&ps->lock, flags); in find_memory_area()
1411 list_for_each_entry(iter, &ps->memory_list, memlist) { in find_memory_area()
1424 spin_unlock_irqrestore(&ps->lock, flags); in find_memory_area()
1428 static int proc_do_submiturb(struct usb_dev_state *ps, struct usbdevfs_urb *uurb, in proc_do_submiturb() argument
1462 ifnum = findintfep(ps->dev, uurb->endpoint); in proc_do_submiturb()
1465 ret = checkintf(ps, ifnum); in proc_do_submiturb()
1469 ep = ep_to_host_endpoint(ps->dev, uurb->endpoint); in proc_do_submiturb()
1493 ret = check_ctrlrecip(ps, dr->bRequestType, dr->bRequest, in proc_do_submiturb()
1508 snoop(&ps->dev->dev, "control urb: bRequestType=%02x " in proc_do_submiturb()
1533 if (num_sgs == 1 || num_sgs > ps->dev->bus->sg_tablesize) in proc_do_submiturb()
1598 as->usbm = find_memory_area(ps, uurb); in proc_do_submiturb()
1680 as->urb->dev = ps->dev; in proc_do_submiturb()
1682 __create_pipe(ps->dev, uurb->endpoint & 0xf) | in proc_do_submiturb()
1701 dev_warn(&ps->dev->dev, "Requested nonsensical USBDEVFS_URB_SHORT_NOT_OK.\n"); in proc_do_submiturb()
1703 dev_warn(&ps->dev->dev, "Requested nonsensical USBDEVFS_URB_ZERO_PACKET.\n"); in proc_do_submiturb()
1714 ps->dev->speed == USB_SPEED_HIGH || in proc_do_submiturb()
1715 ps->dev->speed >= USB_SPEED_SUPER) in proc_do_submiturb()
1731 as->ps = ps; in proc_do_submiturb()
1745 snoop_urb(ps->dev, as->userurb, as->urb->pipe, in proc_do_submiturb()
1754 spin_lock_irq(&ps->lock); in proc_do_submiturb()
1770 ps->disabled_bulk_eps &= ~(1 << as->bulk_addr); in proc_do_submiturb()
1775 if (ps->disabled_bulk_eps & (1 << as->bulk_addr)) in proc_do_submiturb()
1779 spin_unlock_irq(&ps->lock); in proc_do_submiturb()
1785 dev_printk(KERN_DEBUG, &ps->dev->dev, in proc_do_submiturb()
1787 snoop_urb(ps->dev, as->userurb, as->urb->pipe, in proc_do_submiturb()
1804 static int proc_submiturb(struct usb_dev_state *ps, void __user *arg) in proc_submiturb() argument
1811 return proc_do_submiturb(ps, &uurb, in proc_submiturb()
1816 static int proc_unlinkurb(struct usb_dev_state *ps, void __user *arg) in proc_unlinkurb() argument
1822 spin_lock_irqsave(&ps->lock, flags); in proc_unlinkurb()
1823 as = async_getpending(ps, arg); in proc_unlinkurb()
1825 spin_unlock_irqrestore(&ps->lock, flags); in proc_unlinkurb()
1831 spin_unlock_irqrestore(&ps->lock, flags); in proc_unlinkurb()
1889 static struct async *reap_as(struct usb_dev_state *ps) in reap_as() argument
1893 struct usb_device *dev = ps->dev; in reap_as()
1895 add_wait_queue(&ps->wait, &wait); in reap_as()
1898 as = async_getcompleted(ps); in reap_as()
1899 if (as || !connected(ps)) in reap_as()
1907 remove_wait_queue(&ps->wait, &wait); in reap_as()
1912 static int proc_reapurb(struct usb_dev_state *ps, void __user *arg) in proc_reapurb() argument
1914 struct async *as = reap_as(ps); in proc_reapurb()
1919 snoop(&ps->dev->dev, "reap %pK\n", as->userurb); in proc_reapurb()
1929 static int proc_reapurbnonblock(struct usb_dev_state *ps, void __user *arg) in proc_reapurbnonblock() argument
1934 as = async_getcompleted(ps); in proc_reapurbnonblock()
1936 snoop(&ps->dev->dev, "reap %pK\n", as->userurb); in proc_reapurbnonblock()
1940 retval = (connected(ps) ? -EAGAIN : -ENODEV); in proc_reapurbnonblock()
1946 static int proc_control_compat(struct usb_dev_state *ps, in proc_control_compat() argument
1956 return proc_control(ps, p); in proc_control_compat()
1959 static int proc_bulk_compat(struct usb_dev_state *ps, in proc_bulk_compat() argument
1974 return proc_bulk(ps, p); in proc_bulk_compat()
1976 static int proc_disconnectsignal_compat(struct usb_dev_state *ps, void __user *arg) in proc_disconnectsignal_compat() argument
1982 ps->discsignr = ds.signr; in proc_disconnectsignal_compat()
1983 ps->disccontext = compat_ptr(ds.context); in proc_disconnectsignal_compat()
2008 static int proc_submiturb_compat(struct usb_dev_state *ps, void __user *arg) in proc_submiturb_compat() argument
2015 return proc_do_submiturb(ps, &uurb, in proc_submiturb_compat()
2055 static int proc_reapurb_compat(struct usb_dev_state *ps, void __user *arg) in proc_reapurb_compat() argument
2057 struct async *as = reap_as(ps); in proc_reapurb_compat()
2062 snoop(&ps->dev->dev, "reap %pK\n", as->userurb); in proc_reapurb_compat()
2072 static int proc_reapurbnonblock_compat(struct usb_dev_state *ps, void __user *arg) in proc_reapurbnonblock_compat() argument
2077 as = async_getcompleted(ps); in proc_reapurbnonblock_compat()
2079 snoop(&ps->dev->dev, "reap %pK\n", as->userurb); in proc_reapurbnonblock_compat()
2083 retval = (connected(ps) ? -EAGAIN : -ENODEV); in proc_reapurbnonblock_compat()
2091 static int proc_disconnectsignal(struct usb_dev_state *ps, void __user *arg) in proc_disconnectsignal() argument
2097 ps->discsignr = ds.signr; in proc_disconnectsignal()
2098 ps->disccontext = ds.context; in proc_disconnectsignal()
2102 static int proc_claiminterface(struct usb_dev_state *ps, void __user *arg) in proc_claiminterface() argument
2108 return claimintf(ps, ifnum); in proc_claiminterface()
2111 static int proc_releaseinterface(struct usb_dev_state *ps, void __user *arg) in proc_releaseinterface() argument
2118 ret = releaseintf(ps, ifnum); in proc_releaseinterface()
2121 destroy_async_on_interface(ps, ifnum); in proc_releaseinterface()
2125 static int proc_ioctl(struct usb_dev_state *ps, struct usbdevfs_ioctl *ctl) in proc_ioctl() argument
2133 if (ps->privileges_dropped) in proc_ioctl()
2152 if (!connected(ps)) { in proc_ioctl()
2157 if (ps->dev->state != USB_STATE_CONFIGURED) in proc_ioctl()
2159 else if (!(intf = usb_ifnum_to_if(ps->dev, ctl->ifno))) in proc_ioctl()
2205 static int proc_ioctl_default(struct usb_dev_state *ps, void __user *arg) in proc_ioctl_default() argument
2211 return proc_ioctl(ps, &ctrl); in proc_ioctl_default()
2215 static int proc_ioctl_compat(struct usb_dev_state *ps, compat_uptr_t arg) in proc_ioctl_compat() argument
2225 return proc_ioctl(ps, &ctrl); in proc_ioctl_compat()
2229 static int proc_claim_port(struct usb_dev_state *ps, void __user *arg) in proc_claim_port() argument
2236 rc = usb_hub_claim_port(ps->dev, portnum, ps); in proc_claim_port()
2238 snoop(&ps->dev->dev, "port %d claimed by process %d: %s\n", in proc_claim_port()
2243 static int proc_release_port(struct usb_dev_state *ps, void __user *arg) in proc_release_port() argument
2249 return usb_hub_release_port(ps->dev, portnum, ps); in proc_release_port()
2252 static int proc_get_capabilities(struct usb_dev_state *ps, void __user *arg) in proc_get_capabilities() argument
2259 if (!ps->dev->bus->no_stop_on_short) in proc_get_capabilities()
2261 if (ps->dev->bus->sg_tablesize) in proc_get_capabilities()
2270 static int proc_disconnect_claim(struct usb_dev_state *ps, void __user *arg) in proc_disconnect_claim() argument
2278 intf = usb_ifnum_to_if(ps->dev, dc.interface); in proc_disconnect_claim()
2285 if (ps->privileges_dropped) in proc_disconnect_claim()
2302 return claimintf(ps, dc.interface); in proc_disconnect_claim()
2305 static int proc_alloc_streams(struct usb_dev_state *ps, void __user *arg) in proc_alloc_streams() argument
2312 r = parse_usbdevfs_streams(ps, arg, &num_streams, &num_eps, in proc_alloc_streams()
2317 destroy_async_on_interface(ps, in proc_alloc_streams()
2325 static int proc_free_streams(struct usb_dev_state *ps, void __user *arg) in proc_free_streams() argument
2332 r = parse_usbdevfs_streams(ps, arg, NULL, &num_eps, &eps, &intf); in proc_free_streams()
2336 destroy_async_on_interface(ps, in proc_free_streams()
2344 static int proc_drop_privileges(struct usb_dev_state *ps, void __user *arg) in proc_drop_privileges() argument
2355 ps->interface_allowed_mask &= data; in proc_drop_privileges()
2356 ps->privileges_dropped = true; in proc_drop_privileges()
2369 struct usb_dev_state *ps = file->private_data; in usbdev_do_ioctl() local
2371 struct usb_device *dev = ps->dev; in usbdev_do_ioctl()
2383 ret = proc_reapurb(ps, p); in usbdev_do_ioctl()
2388 ret = proc_reapurbnonblock(ps, p); in usbdev_do_ioctl()
2394 ret = proc_reapurb_compat(ps, p); in usbdev_do_ioctl()
2399 ret = proc_reapurbnonblock_compat(ps, p); in usbdev_do_ioctl()
2404 if (!connected(ps)) { in usbdev_do_ioctl()
2412 ret = proc_control(ps, p); in usbdev_do_ioctl()
2419 ret = proc_bulk(ps, p); in usbdev_do_ioctl()
2426 ret = proc_resetep(ps, p); in usbdev_do_ioctl()
2433 ret = proc_resetdevice(ps); in usbdev_do_ioctl()
2438 ret = proc_clearhalt(ps, p); in usbdev_do_ioctl()
2445 ret = proc_getdriver(ps, p); in usbdev_do_ioctl()
2450 ret = proc_connectinfo(ps, p); in usbdev_do_ioctl()
2455 ret = proc_setintf(ps, p); in usbdev_do_ioctl()
2460 ret = proc_setconfig(ps, p); in usbdev_do_ioctl()
2465 ret = proc_submiturb(ps, p); in usbdev_do_ioctl()
2473 ret = proc_control_compat(ps, p); in usbdev_do_ioctl()
2480 ret = proc_bulk_compat(ps, p); in usbdev_do_ioctl()
2487 ret = proc_disconnectsignal_compat(ps, p); in usbdev_do_ioctl()
2492 ret = proc_submiturb_compat(ps, p); in usbdev_do_ioctl()
2499 ret = proc_ioctl_compat(ps, ptr_to_compat(p)); in usbdev_do_ioctl()
2505 ret = proc_unlinkurb(ps, p); in usbdev_do_ioctl()
2510 ret = proc_disconnectsignal(ps, p); in usbdev_do_ioctl()
2515 ret = proc_claiminterface(ps, p); in usbdev_do_ioctl()
2520 ret = proc_releaseinterface(ps, p); in usbdev_do_ioctl()
2525 ret = proc_ioctl_default(ps, p); in usbdev_do_ioctl()
2530 ret = proc_claim_port(ps, p); in usbdev_do_ioctl()
2535 ret = proc_release_port(ps, p); in usbdev_do_ioctl()
2538 ret = proc_get_capabilities(ps, p); in usbdev_do_ioctl()
2541 ret = proc_disconnect_claim(ps, p); in usbdev_do_ioctl()
2544 ret = proc_alloc_streams(ps, p); in usbdev_do_ioctl()
2547 ret = proc_free_streams(ps, p); in usbdev_do_ioctl()
2550 ret = proc_drop_privileges(ps, p); in usbdev_do_ioctl()
2553 ret = ps->dev->speed; in usbdev_do_ioctl()
2590 struct usb_dev_state *ps = file->private_data; in usbdev_poll() local
2593 poll_wait(file, &ps->wait, wait); in usbdev_poll()
2594 if (file->f_mode & FMODE_WRITE && !list_empty(&ps->async_completed)) in usbdev_poll()
2596 if (!connected(ps)) in usbdev_poll()
2598 if (list_empty(&ps->list)) in usbdev_poll()
2619 struct usb_dev_state *ps; in usbdev_remove() local
2623 ps = list_entry(udev->filelist.next, struct usb_dev_state, list); in usbdev_remove()
2624 destroy_all_async(ps); in usbdev_remove()
2625 wake_up_all(&ps->wait); in usbdev_remove()
2626 list_del_init(&ps->list); in usbdev_remove()
2627 if (ps->discsignr) { in usbdev_remove()
2629 sinfo.si_signo = ps->discsignr; in usbdev_remove()
2632 sinfo.si_addr = ps->disccontext; in usbdev_remove()
2633 kill_pid_info_as_cred(ps->discsignr, &sinfo, in usbdev_remove()
2634 ps->disc_pid, ps->cred); in usbdev_remove()