"during a successful call to @prepare()"?
You misunderstood (maybe the comment needs to be clarified as above).
If prepare() returns any error (including -EAGAIN) then complete() does
not get called. If prepare() returns successfully but the PM core
detects that a new child was added while prepare() was running, then we
call complete(), suspend the child, and call prepare() again.
It's okay to use "contents" -- analogous to the table of contents in a
book. It's one of those weird corner cases where either alternative is
acceptable.
Alan Stern
--