linux-xiaomi-chiron/drivers/video/fbdev
Michael Kelley 9ff5549b1d 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: 67e7cdb482 ("video: hyperv: hyperv_fb: Obtain screen resolution from Hyper-V host")
Signed-off-by: Michael Kelley <mikelley@microsoft.com>
Reviewed-by: Haiyang Zhang <haiyangz@microsoft.com>
Acked-by: Helge Deller <deller@gmx.de>
Link: https://lore.kernel.org/r/1642360711-2335-1-git-send-email-mikelley@microsoft.com
Signed-off-by: Wei Liu <wei.liu@kernel.org>
2022-01-24 14:01:12 +00:00
..
aty video: fbdev: atyfb: mach64_cursor.c: deleted the repeated word 2021-06-03 10:32:49 +02:00
core drm for 5.17-rc1 2022-01-10 12:58:46 -08:00
geode
i810
intelfb
kyro video: fbdev: kyro: Error out if 'pixclock' equals zero 2021-07-26 20:06:00 +02:00
matrox fbdev: matrox: use modern module_init() 2021-05-26 21:31:19 +02:00
mb862xx video: fbdev: mb862xx: use DEVICE_ATTR_RO macro 2021-06-03 10:32:49 +02:00
mmp
nvidia
omap video: omapfb: Fix fall-through warning for Clang 2021-10-14 20:21:32 +02:00
omap2 video: omapfb: replace snprintf in show functions with sysfs_emit 2021-10-15 22:52:10 +02:00
riva video: fbdev: riva: Error out if 'pixclock' equals zero 2021-07-26 20:06:03 +02:00
savage
sis
vermilion
via
68328fb.c
acornfb.c
acornfb.h
amba-clcd.c
amifb.c
arcfb.c video: fbdev: arcfb: remove redundant initialization of variable err 2021-07-21 13:09:21 +02:00
arkfb.c
asiliantfb.c video: fbdev: asiliantfb: Error out if 'pixclock' equals zero 2021-07-26 20:05:50 +02:00
atafb.c
atafb.h
atafb_iplan2p2.c
atafb_iplan2p4.c
atafb_iplan2p8.c
atafb_mfb.c
atafb_utils.h
atmel_lcdfb.c
au1100fb.c
au1100fb.h
au1200fb.c
au1200fb.h
broadsheetfb.c
bt431.h
bt455.h
bw2.c
c2p.h
c2p_core.h
c2p_iplan2.c
c2p_planar.c
carminefb.c
carminefb.h
carminefb_regs.h
cg3.c
cg6.c
cg14.c
chipsfb.c video: fbdev: chipsfb: use memset_io() instead of memset() 2021-10-09 00:15:59 +11:00
cirrusfb.c
clps711x-fb.c
cobalt_lcdfb.c
controlfb.c
controlfb.h
cyber2000fb.c
cyber2000fb.h
da8xx-fb.c
dnfb.c
edid.h
efifb.c fbdev: Prevent probing generic drivers if a FB is already registered 2021-11-17 10:15:05 +01:00
ep93xx-fb.c video: ep93xx: Prepare clock before using it 2021-07-26 22:10:29 +02:00
ffb.c
fm2fb.c
fsl-diu-fb.c
g364fb.c
gbefb.c video: fbdev: gbefb: Only instantiate device when built for IP32 2021-10-06 11:12:28 +02:00
goldfishfb.c
grvga.c
gxt4500.c
hecubafb.c
hgafb.c video: hgafb: correctly handle card detect failure during probe 2021-05-21 15:04:05 +02:00
hitfb.c
hpfb.c
hyperv_fb.c video: hyperv_fb: Fix validation of screen resolution 2022-01-24 14:01:12 +00:00
i740_reg.h
i740fb.c
imsttfb.c video: imsttfb: check for ioremap() failures 2021-05-13 18:58:39 +02:00
imxfb.c
Kconfig fbdev: simplefb: fix Kconfig dependencies 2021-10-06 11:12:28 +02:00
leo.c
macfb.c
macmodes.c
macmodes.h
Makefile
maxinefb.c
metronomefb.c
mx3fb.c
n411.c
neofb.c video: fbdev: neofb: add a check against divide error 2021-07-21 15:02:03 +02:00
ocfb.c
offb.c
p9100.c
platinumfb.c
platinumfb.h
pm2fb.c
pm3fb.c
pmag-aa-fb.c
pmag-ba-fb.c
pmagb-b-fb.c
ps3fb.c
pvr2fb.c
pxa3xx-gcu.c
pxa3xx-gcu.h
pxa168fb.c
pxa168fb.h
pxafb.c
pxafb.h
q40fb.c
s1d13xxxfb.c
s3c-fb.c
s3c2410fb-regs-lcd.h
s3c2410fb.c
s3c2410fb.h
s3fb.c
sa1100fb.c
sa1100fb.h
sbuslib.c
sbuslib.h
sh7760fb.c
sh_mobile_lcdcfb.c
sh_mobile_lcdcfb.h
simplefb.c Merge drm/drm-next into drm-misc-next 2021-12-16 14:48:27 +01:00
skeletonfb.c fbdev: Garbage collect fbdev scrolling acceleration, part 1 (from TODO list) 2021-10-13 15:29:23 +02:00
sm501fb.c
sm712.h
sm712fb.c
smscufx.c
ssd1307fb.c video: fbdev: ssd1307fb: Cache address ranges 2021-07-27 17:18:26 +02:00
sstfb.c
sticore.h
stifb.c
sunxvr500.c
sunxvr1000.c
sunxvr2500.c
tcx.c
tdfxfb.c
tgafb.c
tmiofb.c
tridentfb.c
udlfb.c
uvesafb.c
valkyriefb.c
valkyriefb.h
vesafb.c
vfb.c
vga16fb.c video: vga16fb: Only probe for EGA and VGA 16 color graphic cards 2022-01-12 11:14:42 +01:00
vt8500lcdfb.c
vt8500lcdfb.h
vt8623fb.c
w100fb.c
w100fb.h
wm8505fb.c
wm8505fb_regs.h
wmt_ge_rops.c
wmt_ge_rops.h
xen-fbfront.c xen: add "not_essential" flag to struct xenbus_driver 2021-11-23 13:41:29 -06:00
xilinxfb.c video: fbdev: Fix fall-through warning for Clang 2021-07-13 13:58:29 -05:00