.. | .. |
---|
297 | 297 | { |
---|
298 | 298 | struct vrequest *req; |
---|
299 | 299 | |
---|
300 | | - if (WARN_ON(!_ep || !_req)) |
---|
| 300 | + /* ep is always valid here - see usb_ep_free_request() */ |
---|
| 301 | + if (!_req) |
---|
301 | 302 | return; |
---|
302 | 303 | |
---|
303 | 304 | req = to_vrequest(_req); |
---|
.. | .. |
---|
616 | 617 | if (ret < 0) |
---|
617 | 618 | goto err_add_udc; |
---|
618 | 619 | |
---|
619 | | - ret = sysfs_create_group(&pdev->dev.kobj, &vudc_attr_group); |
---|
620 | | - if (ret) { |
---|
621 | | - dev_err(&udc->pdev->dev, "create sysfs files\n"); |
---|
622 | | - goto err_sysfs; |
---|
623 | | - } |
---|
624 | | - |
---|
625 | 620 | platform_set_drvdata(pdev, udc); |
---|
626 | 621 | |
---|
627 | 622 | return ret; |
---|
628 | 623 | |
---|
629 | | -err_sysfs: |
---|
630 | | - usb_del_gadget_udc(&udc->gadget); |
---|
631 | 624 | err_add_udc: |
---|
632 | 625 | cleanup_vudc_hw(udc); |
---|
633 | 626 | err_init_vudc_hw: |
---|
.. | .. |
---|
640 | 633 | { |
---|
641 | 634 | struct vudc *udc = platform_get_drvdata(pdev); |
---|
642 | 635 | |
---|
643 | | - sysfs_remove_group(&pdev->dev.kobj, &vudc_attr_group); |
---|
644 | 636 | usb_del_gadget_udc(&udc->gadget); |
---|
645 | 637 | cleanup_vudc_hw(udc); |
---|
646 | 638 | kfree(udc); |
---|