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.
Best Regards
Lin Yi