On Fri, Mar 15, 2019 at 12:28:53PM +0800, 易林 wrote: > > Hi all, > > While analyzing the v5.0 source, I notice that when write_parport_reg_nonblock failed and return -ENOMEN, > > the refcount of mos_parport increased by kref_get didn't decreased even after return to the caller write_parport_reg_nonblock: > > kref_get(&mos_parport->ref_count); > urbtrack->mos_parport = mos_parport; > urbtrack->urb = usb_alloc_urb(0, GFP_ATOMIC); > if (!urbtrack->urb) { > kfree(urbtrack); > return -ENOMEM; > } > urbtrack->setup = kmalloc(sizeof(*urbtrack->setup), GFP_ATOMIC); > if (!urbtrack->setup) { > usb_free_urb(urbtrack->urb); > kfree(urbtrack); > return -ENOMEM; > } > > can this lead to the imbalance of the mos_parport's refcount? though the ENOMEN almost won't be trigger. Looks like it, care to send a patch? thanks, greg k-h