Am Freitag, 4. Dezember 2009 17:50:40 schrieb Greg KH: > On Fri, Dec 04, 2009 at 05:16:19PM +0100, Oliver Neukum wrote: > > Am Freitag, 4. Dezember 2009 17:06:57 schrieb Alan Stern: > > > Oliver: > > > > > > We don't have to worry about the device structure being deallocated > > > while the routine is running. If that happens it's a bug in the > > > caller: improper refcounting. > > > > > > That raises two points > > > > 1. am I supposed to get a reference just so that I can use dev_err? > > No, you should already have a reference on the device when doing the > call, right? No, why? Consider this: int write(...) { ... mutex_lock(&instance->lock); if (instance->disconnected) { dev_dbg(instance->dev,"writing to disconnected device"); rv = -ENODEV; } else { res = usb_submit_urb(...); rv = res < 0 ? -EIO : count; } mutex_unlock(&instance->lock); return rv; } void disconnect(...) { ... mutex_lock(&instance->lock); instance->disconnected = 1; usb_kill_urb(...); usb_kill_urb(...); mutex_unlock(&instance->lock); } This would be perfectly valid code without any references taken save for the pesky dev_dbg() Regards Oliver -- To unsubscribe from this list: send the line "unsubscribe linux-usb" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html