Re: [PATCH] [v3] xen: remove pre-xen3 fallback handlers
From: Jan Beulich
Date: Thu Mar 15 2018 - 04:24:39 EST
>>> On 14.03.18 at 23:47, <boris.ostrovsky@xxxxxxxxxx> wrote:
> On 03/13/2018 05:06 PM, Arnd Bergmann wrote:
>> The legacy hypercall handlers were originally added with
>> a comment explaining that "copying the argument structures in
>> HYPERVISOR_event_channel_op() and HYPERVISOR_physdev_op() into the local
>> variable is sufficiently safe" and only made sure to not write
>> past the end of the argument structure, the checks in linux/string.h
>> disagree with that, when link-time optimizations are used:
>>
>> In function 'memcpy',
>> inlined from 'pirq_query_unmask' at drivers/xen/fallback.c:53:2,
>> inlined from '__startup_pirq' at drivers/xen/events/events_base.c:529:2,
>> inlined from 'restore_pirqs' at drivers/xen/events/events_base.c:1439:3,
>> inlined from 'xen_irq_resume' at drivers/xen/events/events_base.c:1581:2:
>> include/linux/string.h:350:3: error: call to '__read_overflow2' declared with attribute error: detected read beyond size of object passed as 2nd parameter
>> __read_overflow2();
>> ^
>>
>> Further research turned out that only Xen 3.0.2 or earlier required the
>> fallback at all, while all versions in use today don't need it.
>> As far as I can tell, it is not even possible to run a mainline kernel
>> on those old Xen releases, at the time when they were in use, only
>> a patched kernel was supported anyway.
>>
>> Fixes: cf47a83fb06e ("xen/hypercall: fix hypercall fallback code for very old hypervisors")
>> Signed-off-by: Arnd Bergmann <arnd@xxxxxxxx>
>> ---
>> [v2] use a table lookup instead of a switch/case statement, after
>> multiple suggestions.
>> [v3] remove that file completely
>
> (+Jan who added this file originally)
Well, if everyone thinks backwards compatibility to those very old
hypervisors is not relevant anymore, then I'm not going to object.
It's really a matter of the consuming distros to know how far back
they want/need to guarantee compatibility.
Jan