Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux
1
fork

Configure Feed

Select the types of activity you want to include in your feed.

Merge tag 'fbdev-fixes-3.19' of git://git.kernel.org/pub/scm/linux/kernel/git/tomba/linux

Pull fbdev fixes from Tomi Valkeinen:

- Fix regression with Nokia N900 display

- Fix crash on fbdev using freed __initdata logos

- Fix fb_deferred_io_fsync() return value.

* tag 'fbdev-fixes-3.19' of git://git.kernel.org/pub/scm/linux/kernel/git/tomba/linux:
OMAPDSS: SDI: fix output port_num
video/fbdev: fix defio's fsync
video/logo: prevent use of logos after they have been freed
OMAPDSS: pll: NULL dereference in error handling
OMAPDSS: HDMI: remove double initializer entries

+23 -6
+3 -2
drivers/video/fbdev/core/fb_defio.c
··· 83 83 cancel_delayed_work_sync(&info->deferred_work); 84 84 85 85 /* Run it immediately */ 86 - err = schedule_delayed_work(&info->deferred_work, 0); 86 + schedule_delayed_work(&info->deferred_work, 0); 87 87 mutex_unlock(&inode->i_mutex); 88 - return err; 88 + 89 + return 0; 89 90 } 90 91 EXPORT_SYMBOL_GPL(fb_deferred_io_fsync); 91 92
-2
drivers/video/fbdev/omap2/dss/hdmi_pll.c
··· 132 132 .mX_max = 127, 133 133 .fint_min = 500000, 134 134 .fint_max = 2500000, 135 - .clkdco_max = 1800000000, 136 135 137 136 .clkdco_min = 500000000, 138 137 .clkdco_low = 1000000000, ··· 155 156 .mX_max = 127, 156 157 .fint_min = 620000, 157 158 .fint_max = 2500000, 158 - .clkdco_max = 1800000000, 159 159 160 160 .clkdco_min = 750000000, 161 161 .clkdco_low = 1500000000,
+2 -1
drivers/video/fbdev/omap2/dss/pll.c
··· 97 97 return 0; 98 98 99 99 err_enable: 100 - regulator_disable(pll->regulator); 100 + if (pll->regulator) 101 + regulator_disable(pll->regulator); 101 102 err_reg: 102 103 clk_disable_unprepare(pll->clkin); 103 104 return r;
+2
drivers/video/fbdev/omap2/dss/sdi.c
··· 342 342 out->output_type = OMAP_DISPLAY_TYPE_SDI; 343 343 out->name = "sdi.0"; 344 344 out->dispc_channel = OMAP_DSS_CHANNEL_LCD; 345 + /* We have SDI only on OMAP3, where it's on port 1 */ 346 + out->port_num = 1; 345 347 out->ops.sdi = &sdi_ops; 346 348 out->owner = THIS_MODULE; 347 349
+16 -1
drivers/video/logo/logo.c
··· 21 21 module_param(nologo, bool, 0); 22 22 MODULE_PARM_DESC(nologo, "Disables startup logo"); 23 23 24 + /* 25 + * Logos are located in the initdata, and will be freed in kernel_init. 26 + * Use late_init to mark the logos as freed to prevent any further use. 27 + */ 28 + 29 + static bool logos_freed; 30 + 31 + static int __init fb_logo_late_init(void) 32 + { 33 + logos_freed = true; 34 + return 0; 35 + } 36 + 37 + late_initcall(fb_logo_late_init); 38 + 24 39 /* logo's are marked __initdata. Use __init_refok to tell 25 40 * modpost that it is intended that this function uses data 26 41 * marked __initdata. ··· 44 29 { 45 30 const struct linux_logo *logo = NULL; 46 31 47 - if (nologo) 32 + if (nologo || logos_freed) 48 33 return NULL; 49 34 50 35 if (depth >= 1) {