mirror of https://gitee.com/openkylin/linux.git
12f3ac2fb1
savage_init_hw() is never called in atomic context. The call chains ending up at savage_init_hw() are: [1] savage_init_hw() <- savagefb_probe() [2] savage_init_hw() <- savagefb_resume() savagefb_probe() is only set as ".probe" in struct pci_driver. savagefb_resume) is only set as ".resume" in struct pci_driver. These functions are not called in atomic context. Despite never getting called from atomic context, savage_init_hw() calls mdelay() to busily wait. This is not necessary and can be replaced with usleep_range to avoid busy waiting. This is found by a static analysis tool named DCNS written by myself. And I also manually check it. Signed-off-by: Jia-Ju Bai <baijiaju1990@gmail.com> Cc: Antonino Daplas <adaplas@gmail.com> Signed-off-by: Bartlomiej Zolnierkiewicz <b.zolnierkie@samsung.com> |
||
---|---|---|
.. | ||
backlight | ||
console | ||
fbdev | ||
logo | ||
Kconfig | ||
Makefile | ||
display_timing.c | ||
hdmi.c | ||
of_display_timing.c | ||
of_videomode.c | ||
vgastate.c | ||
videomode.c |