Showing error 1322

User: Jiri Slaby
Error type: Leaving function in locked state
Error type description: Some lock is not unlocked on all paths of a function, so it is leaked
File location: drivers/usb/class/cdc-wdm.c
Line in file: 810
Project: Linux Kernel
Project version: 2.6.28
Tools: Stanse (1.2)
Entered: 2012-05-21 20:30:05 UTC


Source:

780
781static int recover_from_urb_loss(struct wdm_device *desc)
782{
783        int rv = 0;
784
785        if (desc->count) {
786                rv = usb_submit_urb(desc->validity, GFP_NOIO);
787                if (rv < 0)
788                        dev_err(&desc->intf->dev,
789                                "Error resume submitting int urb - %d\n", rv);
790        }
791        return rv;
792}
793static int wdm_resume(struct usb_interface *intf)
794{
795        struct wdm_device *desc = usb_get_intfdata(intf);
796        int rv;
797
798        dev_dbg(&desc->intf->dev, "wdm%d_resume\n", intf->minor);
799        mutex_lock(&desc->plock);
800        rv = recover_from_urb_loss(desc);
801        mutex_unlock(&desc->plock);
802        return rv;
803}
804
805static int wdm_pre_reset(struct usb_interface *intf)
806{
807        struct wdm_device *desc = usb_get_intfdata(intf);
808
809        mutex_lock(&desc->plock);
810        return 0;
811}
812
813static int wdm_post_reset(struct usb_interface *intf)
814{
815        struct wdm_device *desc = usb_get_intfdata(intf);
816        int rv;
817
818        rv = recover_from_urb_loss(desc);
819        mutex_unlock(&desc->plock);
820        return 0;
Show full sources