>>> On 21.04.16 at 02:29, <konrad.w...@oracle.com> wrote:
> On Tue, Apr 19, 2016 at 02:17:35PM -0600, Jan Beulich wrote:
>> >>> Konrad Rzeszutek Wilk <konrad.w...@oracle.com> 04/14/16 12:02 AM >>>
>> >+bool_t is_patch(const void *ptr)
>> >+{
>> >+    struct payload *data;
>> 
>> You guess it: const.
>> 
>> >+    /*
>> >+     * No locking since this list is only ever changed during apply or 
>> >revert
>> >+     * context.
>> >+     */
>> 
>> What if you crash while applying or reverting a patch? Is the list update at
>> least done such that the (then nested) traversal remains safe?
> 
> Yes! We only add the struct payload to this applied_list _after_ the
> patching has been done.` Hence if we crashed the list would not contain the
> struct payload that was patching  - but would be safe to traverse.

Well, that only partly answers the question. Patch application to me
means the entire process, i.e. up to and including adding the new
patch to the list (read: the crash could also happen there). Hence
I'd still like it to be made sure that even if the addition has got done
only partially, the list remains traversable. Or IOW, I'm not sure the
standard list macros make any guarantees like that.

Jan


_______________________________________________
Xen-devel mailing list
Xen-devel@lists.xen.org
http://lists.xen.org/xen-devel

Reply via email to