| .. | .. |
|---|
| 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); |
|---|