Re: [PATCH 1/1] video: hyperv_fb: Fix validation of screen resolution

From: Helge Deller
Date: Mon Jan 24 2022 - 04:53:44 EST


On 1/23/22 23:30, Wei Liu wrote:
> On Sun, Jan 23, 2022 at 10:27:56PM +0000, Michael Kelley (LINUX) wrote:
>> From: Wei Liu <wei.liu@xxxxxxxxxx> Sent: Sunday, January 23, 2022 1:56 PM
>>>
>>> On Sun, Jan 16, 2022 at 09:53:06PM +0000, Haiyang Zhang wrote:
>>>>
>>>>
>>>>> -----Original Message-----
>>>>> From: Michael Kelley (LINUX) <mikelley@xxxxxxxxxxxxx>
>>>>> Sent: Sunday, January 16, 2022 2:19 PM
>>>>> To: KY Srinivasan <kys@xxxxxxxxxxxxx>; Haiyang Zhang
>>> <haiyangz@xxxxxxxxxxxxx>; Stephen
>>>>> Hemminger <sthemmin@xxxxxxxxxxxxx>; wei.liu@xxxxxxxxxx; Wei Hu
>>> <weh@xxxxxxxxxxxxx>; Dexuan
>>>>> Cui <decui@xxxxxxxxxxxxx>; drawat.floss@xxxxxxxxx; hhei <hhei@xxxxxxxxxx>;
>>> linux-
>>>>> kernel@xxxxxxxxxxxxxxx; linux-hyperv@xxxxxxxxxxxxxxx; linux-
>>> fbdev@xxxxxxxxxxxxxxx; dri-
>>>>> devel@xxxxxxxxxxxxxxxxxxxxx
>>>>> Cc: Michael Kelley (LINUX) <mikelley@xxxxxxxxxxxxx>
>>>>> Subject: [PATCH 1/1] video: hyperv_fb: Fix validation of screen resolution
>>>>>
>>>>> In the WIN10 version of the Synthetic Video protocol with Hyper-V,
>>>>> Hyper-V reports a list of supported resolutions as part of the protocol
>>>>> negotiation. The driver calculates the maximum width and height from
>>>>> the list of resolutions, and uses those maximums to validate any screen
>>>>> resolution specified in the video= option on the kernel boot line.
>>>>>
>>>>> This method of validation is incorrect. For example, the list of
>>>>> supported resolutions could contain 1600x1200 and 1920x1080, both of
>>>>> which fit in an 8 Mbyte frame buffer. But calculating the max width
>>>>> and height yields 1920 and 1200, and 1920x1200 resolution does not fit
>>>>> in an 8 Mbyte frame buffer. Unfortunately, this resolution is accepted,
>>>>> causing a kernel fault when the driver accesses memory outside the
>>>>> frame buffer.
>>>>>
>>>>> Instead, validate the specified screen resolution by calculating
>>>>> its size, and comparing against the frame buffer size. Delete the
>>>>> code for calculating the max width and height from the list of
>>>>> resolutions, since these max values have no use. Also add the
>>>>> frame buffer size to the info message to aid in understanding why
>>>>> a resolution might be rejected.
>>>>>
>>>>> Fixes: 67e7cdb4829d ("video: hyperv: hyperv_fb: Obtain screen resolution from Hyper-V
>>>>> host")
>>>>> Signed-off-by: Michael Kelley <mikelley@xxxxxxxxxxxxx>
>>> [...]
>>>>
>>>> Reviewed-by: Haiyang Zhang <haiyangz@xxxxxxxxxxxxx>
>>>>
>>>
>>> Applied to hyperv-fixes. Thanks.
>>
>> This fix got pulled into the fbdev/for-next tree by a new maintainer, Helge Deller.
>> See https://git.kernel.org/pub/scm/linux/kernel/git/deller/linux-fbdev.git/commit/?h=for-next&id=bcc48f8d980b12e66a3d59dfa1041667db971d86
>
> OK. I will drop it from hyperv-fixes. Thanks for letting me know!

Linus hasn't pulled my tree yet, and he will probably not before the
next merge window. So, if this is an urgent bugfix for you, I can offer
to drop it from the fbdev tree and that you take it through the hyperv-fixes tree.
In that case you may add an Acked-by: Helge Deller <deller@xxxxxx>.
Just let me know what you prefer.

Helge