Re: [PATCH 2/5] firewire: fix crash in automatic module unloading

From: Stefan Richter
Date: Mon Mar 03 2008 - 12:35:18 EST


Kristian Høgsberg wrote:
I would want to use a kref and a completion for tracking this though
instead of the atomic. Just use kref_get() instead of incrementing
the atomic and use kref_put() instead of decrementing it. The release
function for kref_put() should complete the completion struct and
instead of the busy loop in fw_core_remove_card() we just wait for the
completion.

Sounds like the way to go. Since I already passed that patch upwards, I will do an incremental rework. (But perhaps not before spending some time on ticket number 9617 at bugzilla.kernel.org's...)

And I'm not sure I agree that it's a device_count, it
really just is a ref-count. The core should also hold a reference to
the card and release it in fw_core_remove_card(), just before waiting
on the completion.

Right; we just shouldn't mix fw-ohci's refcounting (which isn't really needed since the lifetime rules for the card are as simple as they can get for fw-ohci) and fw-core's refcounting.
--
Stefan Richter
-=====-==--- --== ---==
http://arcgraph.de/sr/
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/