[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Xen-devel] [PATCH v4 10/12] livepatch: Handle arbitrary size names with the list operation



On 30.09.2019 12:58,  Wieczorkiewicz, Pawel  wrote:
> 
> 
>> On 30. Sep 2019, at 10:50, Jan Beulich <jbeulich@xxxxxxxx> wrote:
>>
>> On 28.09.2019 17:13, Pawel Wieczorkiewicz wrote:
>>> --- a/xen/include/public/sysctl.h
>>> +++ b/xen/include/public/sysctl.h
>>> @@ -925,10 +925,11 @@ struct xen_sysctl_livepatch_get {
>>>  *
>>>
> snip
>>>     uint32_t pad;                           /* IN: Must be zero. */
>>> +    uint32_t name_total_size;               /* OUT: Total size of all 
>>> transfer names */
>>>     XEN_GUEST_HANDLE_64(xen_livepatch_status_t) status;  /* OUT. Must have 
>>> enough
>>>                                                space allocate for nr of 
>>> them. */
>>>     XEN_GUEST_HANDLE_64(char) name;         /* OUT: Array of names. Each 
>>> member
>>> -                                               MUST 
>>> XEN_LIVEPATCH_NAME_SIZE in size.
>>> -                                               Must have nr of them. */
>>> +                                               may have an arbitrary 
>>> length up to
>>> +                                               XEN_LIVEPATCH_NAME_SIZE 
>>> bytes. Must have
>>> +                                               nr of them. */
>>>     XEN_GUEST_HANDLE_64(uint32) len;        /* OUT: Array of lengths of 
>>> name's.
>>>                                                Must have nr of them. */
>>> };
>>
>> Non-binary-compatible changes require an interface version bump.
> 
> The bump happens with this patch of the patchset:
> https://patchwork.kernel.org/patch/11165427/
> 
>> I wonder though why you don't use the "pad" field; in fact the
>> way you make the change you'd have to introduce a 2nd padding
>> field, to make padding explicit _and_ check it's zero on input
>> (for future extensibility _without_ having to bump the interface
>> version).
>>
> 
> I do not use the pad field because I introduce another field with the
> next patch of the patchset: https://patchwork.kernel.org/patch/11165433/
> Then I would have to re-add the pad field again I suppose.

Yes indeed; this may seem a little cumbersome, but you want your
series structured that a large time gap between any two parts of
which is not going to result in not well formed code.

> Also, I was (false?) impression that the pad field is dedicated to
> the future input parameters, so I should not touch it.

With its padding function it's IN only (and I believe is being
checked to have been set to zero by the caller). Once assigned
a new purpose, it can as well become OUT, provided the prior
meaning of zero in the field doesn't have a chance of confusing
callers.

Jan

_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxxxxxxxxx
https://lists.xenproject.org/mailman/listinfo/xen-devel

 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.