You are correct that the semantics of release_region() have subtly
changed, and that in unusual cases, drivers will need to be tweaked to
accommodate it. I had not thought that any drivers did the sort of
thing that ftape apparently does. I think that fixing the drivers is
the correct course of action, not effectively reverting the new
semantics as you suggest. Especially if ftape is the only example of
this issue.
To briefly describe what the new semantics are: occupy_region and
vacate_region are used to describe physical resources committed to
devices. request_region() and release_region() are used to associate
a resource with a device driver, and to prevent conflicts between
drivers. request_region() implies that a resource is committed by
hardware, so release_region() doesn't remove all traces of the
allocation: the hardware still exists. A bus driver that can control
how devices are configured is a fair user of occupy/vacate calls. An
ordinary driver should use request/release. We need these semantics
for PCMCIA as well as for any other dynamically configured bus, and it
would be semantically incorrect to allow device drivers to continue to
use the calls with the old meanings. The old semantics were broken.
-- Dave Hinds
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.rutgers.edu
Please read the FAQ at http://www.tux.org/lkml/