- 08 2月, 2017 1 次提交
-
-
由 Jan Stourac 提交于
Use setup_timer and mod_timer functions instead of initializing timer with the function init_timer and data fields. Signed-off-by: NJan Stourac <xstourac@gmail.com> Signed-off-by: NBartlomiej Zolnierkiewicz <b.zolnierkie@samsung.com>
-
- 12 1月, 2017 1 次提交
-
-
由 Takashi Iwai 提交于
fbcon can deal with vc_hi_font_mask (the upper 256 chars) and adjust the vc attrs dynamically when vc_hi_font_mask is changed at fbcon_init(). When the vc_hi_font_mask is set, it remaps the attrs in the existing console buffer with one bit shift up (for 9 bits), while it remaps with one bit shift down (for 8 bits) when the value is cleared. It works fine as long as the font gets updated after fbcon was initialized. However, we hit a bizarre problem when the console is switched to another fb driver (typically from vesafb or efifb to drmfb). At switching to the new fb driver, we temporarily rebind the console to the dummy console, then rebind to the new driver. During the switching, we leave the modified attrs as is. Thus, the new fbcon takes over the old buffer as if it were to contain 8 bits chars (although the attrs are still shifted for 9 bits), and effectively this results in the yellow color texts instead of the original white color, as found in the bugzilla entry below. An easy fix for this is to re-adjust the attrs before leaving the fbcon at con_deinit callback. Since the code to adjust the attrs is already present in the current fbcon code, in this patch, we simply factor out the relevant code, and call it from fbcon_deinit(). Bugzilla: https://bugzilla.suse.com/show_bug.cgi?id=1000619Signed-off-by: NTakashi Iwai <tiwai@suse.de> Signed-off-by: NBartlomiej Zolnierkiewicz <b.zolnierkie@samsung.com>
-
- 27 10月, 2016 1 次提交
-
-
由 Jiri Slaby 提交于
Scrolling helpers scrup and scrdown both accept 'top' and 'bottom' as unsigned int. Number of lines 'nr' is accepted as int, but all callers pass down unsigned too. So change the type of 'nr' to unsigned too. Now, promote unsigned int from the helpers up to the con_scroll hook which actually accepted all those as signed int. Next, the 'dir' parameter can have only two values and we define constants for that: SM_UP and SM_DOWN. Switch them to enum and do proper type checking on 'dir' too. Finally, document the behaviour of the hook. Signed-off-by: NJiri Slaby <jslaby@suse.cz> Cc: Thomas Winischhofer <thomas@winischhofer.net> Cc: Tomi Valkeinen <tomi.valkeinen@ti.com> Cc: "James E.J. Bottomley" <jejb@parisc-linux.org> Cc: Helge Deller <deller@gmx.de> Cc: <linux-fbdev@vger.kernel.org> Cc: <linux-usb@vger.kernel.org> Cc: <linux-parisc@vger.kernel.org> Signed-off-by: NGreg Kroah-Hartman <gregkh@linuxfoundation.org>
-
- 26 6月, 2016 4 次提交
-
-
由 Jiri Slaby 提交于
Namely convert: * IS_FG -> con_is_fg * DO_UPDATE -> con_should_update * CON_IS_VISIBLE -> con_is_visible DO_UPDATE was a weird name for a yes/no answer, so the new name is con_should_update. Signed-off-by: NJiri Slaby <jslaby@suse.cz> Cc: Thomas Winischhofer <thomas@winischhofer.net> Cc: Jean-Christophe Plagniol-Villard <plagnioj@jcrosoft.com> Cc: linux-usb@vger.kernel.org Cc: linux-fbdev@vger.kernel.org Signed-off-by: NGreg Kroah-Hartman <gregkh@linuxfoundation.org>
-
由 Jiri Slaby 提交于
It is never called since commit 81732c3b (tty vt: Fix line garbage in virtual console on command line edition) in 3.7. So remove all the callbacks. Signed-off-by: NJiri Slaby <jslaby@suse.cz> Cc: Thomas Winischhofer <thomas@winischhofer.net> Cc: linux-usb@vger.kernel.org Cc: Jean-Christophe Plagniol-Villard <plagnioj@jcrosoft.com> Cc: Tomi Valkeinen <tomi.valkeinen@ti.com> Cc: "James E.J. Bottomley" <jejb@parisc-linux.org> Cc: Helge Deller <deller@gmx.de> Cc: linux-fbdev@vger.kernel.org Cc: linux-parisc@vger.kernel.org Signed-off-by: NGreg Kroah-Hartman <gregkh@linuxfoundation.org>
-
由 Jiri Slaby 提交于
* allow NULL consw->con_set_palette (some consoles define an empty hook) * => remove empty hooks now * return value of consw->con_set_palette is never checked => make the function void * document consw->con_set_palette a bit Signed-off-by: NJiri Slaby <jslaby@suse.cz> Cc: Thomas Winischhofer <thomas@winischhofer.net> Cc: linux-usb@vger.kernel.org Cc: Jean-Christophe Plagniol-Villard <plagnioj@jcrosoft.com> Cc: Tomi Valkeinen <tomi.valkeinen@ti.com> Cc: "James E.J. Bottomley" <jejb@parisc-linux.org> Cc: Helge Deller <deller@gmx.de> Cc: linux-fbdev@vger.kernel.org Cc: linux-parisc@vger.kernel.org Signed-off-by: NGreg Kroah-Hartman <gregkh@linuxfoundation.org>
-
由 Jiri Slaby 提交于
* allow NULL consw->con_scrolldelta (some consoles define an empty hook) * => remove empty hooks now * return value of consw->con_scrolldelta is never checked => make the function void * document consw->con_scrolldelta a bit Signed-off-by: NJiri Slaby <jslaby@suse.cz> Cc: Thomas Winischhofer <thomas@winischhofer.net> Cc: linux-usb@vger.kernel.org Cc: Jean-Christophe Plagniol-Villard <plagnioj@jcrosoft.com> Cc: Tomi Valkeinen <tomi.valkeinen@ti.com> Cc: "James E.J. Bottomley" <jejb@parisc-linux.org> Cc: Helge Deller <deller@gmx.de> Cc: linux-fbdev@vger.kernel.org Cc: linux-parisc@vger.kernel.org Signed-off-by: NGreg Kroah-Hartman <gregkh@linuxfoundation.org>
-
- 01 5月, 2016 1 次提交
-
-
由 Jiri Slaby 提交于
This means all ->con_set_palette have to have the second parameter const too now. Signed-off-by: NJiri Slaby <jslaby@suse.cz> Signed-off-by: NGreg Kroah-Hartman <gregkh@linuxfoundation.org>
-
- 26 2月, 2016 1 次提交
-
-
由 Jean-Philippe Brucker 提交于
Since commit 27a4c827 fbcon: use the cursor blink interval provided by vt two attempts have been made at fixing a possible hang caused by cursor_timer_handler. That function registers a timer to be triggered at "jiffies + fbcon_ops.cur_blink_jiffies". A new case had been encountered during initialisation of clcd-pl11x: fbcon_fb_registered do_fbcon_takeover -> do_register_con_driver fbcon_startup (A) add_cursor_timer (with cur_blink_jiffies = 0) -> do_bind_con_driver visual_init fbcon_init (B) cur_blink_jiffies = msecs_to_jiffies(vc->vc_cur_blink_ms); If we take an softirq anywhere between A and B (and we do), cursor_timer_handler executes indefinitely. Instead of patching all possible paths that lead to this case one at a time, fix the issue at the source and initialise cur_blink_jiffies to 200ms when allocating fbcon_ops. This was its default value before aforesaid commit. fbcon_cursor or fbcon_init will refine this value downstream. Signed-off-by: NJean-Philippe Brucker <jean-philippe.brucker@arm.com> Cc: <stable@vger.kernel.org> # v4.2 Tested-by: NScot Doyle <lkml14@scotdoyle.com> Signed-off-by: NTomi Valkeinen <tomi.valkeinen@ti.com>
-
- 18 10月, 2015 1 次提交
-
-
由 Scot Doyle 提交于
Since commit 27a4c827 fbcon: use the cursor blink interval provided by vt a PPC64LE kernel fails to boot when fbcon_add_cursor_timer uses an uninitialized ops->cur_blink_jiffies. Prevent by initializing in fbcon_init before the call to info->fbops->fb_set_par. Reported-and-tested-by: NAlistair Popple <alistair@popple.id.au> Signed-off-by: NScot Doyle <lkml14@scotdoyle.com> Cc: <stable@vger.kernel.org> [v4.2] Signed-off-by: NGreg Kroah-Hartman <gregkh@linuxfoundation.org>
-
- 10 8月, 2015 1 次提交
-
-
由 Scot Doyle 提交于
A sun7i-a20-olinuxino-micro fails to boot when kernel parameter vt.global_cursor_default=0. The value is copied to vc->vc_deccm causing the initialization of ops->cur_blink_jiffies to be skipped. Unconditionally initialize it. Reported-and-tested-by: NJonathan Liu <net147@gmail.com> Signed-off-by: NScot Doyle <lkml14@scotdoyle.com> Acked-by: NPavel Machek <pavel@ucw.cz> Signed-off-by: NTomi Valkeinen <tomi.valkeinen@ti.com>
-
- 27 5月, 2015 1 次提交
-
-
由 Thierry Reding 提交于
Commit 27a4c827 ("fbcon: use the cursor blink interval provided by vt") unconditionally removes the cursor blink timer. Unfortunately that wreaks havoc under some circumstances. An easily reproducible way is to use both the framebuffer console and a debug serial port as the console output for kernel messages (e.g. "console=ttyS0 console=tty1" on the kernel command-line. Upon boot this triggers a warning from within the del_timer_sync() function because it is called from IRQ context: [ 5.070096] ------------[ cut here ]------------ [ 5.070110] WARNING: CPU: 0 PID: 0 at ../kernel/time/timer.c:1098 del_timer_sync+0x4c/0x54() [ 5.070115] Modules linked in: [ 5.070120] CPU: 0 PID: 0 Comm: swapper/0 Not tainted 4.1.0-rc4-next-20150519 #1 [ 5.070123] Hardware name: SAMSUNG EXYNOS (Flattened Device Tree) [ 5.070142] [] (unwind_backtrace) from [] (show_stack+0x10/0x14) [ 5.070156] [] (show_stack) from [] (dump_stack+0x70/0xbc) [ 5.070164] [] (dump_stack) from [] (warn_slowpath_common+0x74/0xb0) [ 5.070169] [] (warn_slowpath_common) from [] (warn_slowpath_null+0x1c/0x24) [ 5.070174] [] (warn_slowpath_null) from [] (del_timer_sync+0x4c/0x54) [ 5.070183] [] (del_timer_sync) from [] (fbcon_del_cursor_timer+0x2c/0x40) [ 5.070190] [] (fbcon_del_cursor_timer) from [] (fbcon_cursor+0x9c/0x180) [ 5.070198] [] (fbcon_cursor) from [] (hide_cursor+0x30/0x98) [ 5.070204] [] (hide_cursor) from [] (vt_console_print+0x2a8/0x340) [ 5.070212] [] (vt_console_print) from [] (call_console_drivers.constprop.23+0xc8/0xec) [ 5.070218] [] (call_console_drivers.constprop.23) from [] (console_unlock+0x498/0x4f0) [ 5.070223] [] (console_unlock) from [] (vprintk_emit+0x1f0/0x508) [ 5.070228] [] (vprintk_emit) from [] (vprintk_default+0x24/0x2c) [ 5.070234] [] (vprintk_default) from [] (printk+0x70/0x88) After which the system starts spewing all kinds of weird and seemingly unrelated error messages. This commit fixes this by restoring the condition under which the call to fbcon_del_cursor_timer() happens. Reported-by: NDaniel Stone <daniel@fooishbar.org> Reported-by: NKevin Hilman <khilman@kernel.org> Tested-by: NKevin Hilman <khilman@linaro.org> Tested-by: NScot Doyle <lkml14@scotdoyle.com> Signed-off-by: NThierry Reding <treding@nvidia.com> Tested-by: NAndrew Vagin <avagin@virtuozzo.com> Tested-by: NTomeu Vizoso <tomeu.vizoso@collabora.com> Signed-off-by: NGreg Kroah-Hartman <gregkh@linuxfoundation.org>
-
- 11 5月, 2015 1 次提交
-
-
由 Scot Doyle 提交于
vt now provides a cursor blink interval via vc_data. Use this interval instead of the currently hardcoded 200 msecs. Store it in fbcon_ops to avoid locking the console in cursor_timer_handler(). Signed-off-by: NScot Doyle <lkml14@scotdoyle.com> Acked-by: NPavel Machek <pavel@ucw.cz> Signed-off-by: NGreg Kroah-Hartman <gregkh@linuxfoundation.org>
-
- 26 1月, 2015 1 次提交
-
-
由 Scot Doyle 提交于
commit 1fa0b29f ("fbdev: Kill Atari vblank cursor blinking") rendered vbl_cursor_cnt and therefore CURSOR_DRAW_DELAY unused in fbcon.c, so remove them. Signed-off-by: NScot Doyle <lkml14@scotdoyle.com> Signed-off-by: NTomi Valkeinen <tomi.valkeinen@ti.com>
-
- 14 11月, 2014 1 次提交
-
-
由 Hans de Goede 提交于
Various fb drivers register themselves before module_init so as to have a console as early as possible, this is of little use if fbcon does not initialize early too. Fbcon cannot initialize earlier then fs_initcall, because then the creation of /sys/class/graphics/fbcon will fail. Signed-off-by: NHans de Goede <hdegoede@redhat.com> Signed-off-by: NTomi Valkeinen <tomi.valkeinen@ti.com>
-
- 22 10月, 2014 1 次提交
-
-
由 Maarten ter Huurne 提交于
Since strsep is used to tokenize the options string, after each option match the code should use "continue" to get the next token from strsep. This patch applies this pattern consistently. Previously, for "scrollback:" and "map:" the parse code would return (unconditionally: strsep ensures *options != ','), causing any following option to be ignored, while for "vc:" the parse code would go on to parse further options within the same token, which could lead to invalid input being accepted. Signed-off-by: NMaarten ter Huurne <maarten@treewalker.org> Acked-by: NPaul Cercueil <paul@crapouillou.net> Signed-off-by: NTomi Valkeinen <tomi.valkeinen@ti.com>
-
- 09 5月, 2014 1 次提交
-
-
由 Masami Ichikawa 提交于
kmemleak reported a memory leak as below. unreferenced object 0xffff8800dab6d8d8 (size 96): comm "swapper/0", pid 1, jiffies 4294877598 (age 38.483s) hex dump (first 32 bytes): 00 00 00 00 00 01 00 00 08 00 00 00 10 00 00 00 ................ 07 00 00 00 00 00 00 00 01 00 00 00 00 00 00 00 ................ backtrace: [<ffffffff814e8f2e>] kmemleak_alloc+0x4e/0xb0 [<ffffffff811a0600>] __kmalloc+0x280/0x320 [<ffffffff81309b61>] soft_cursor+0x231/0x290 [<ffffffff81309393>] bit_cursor+0x613/0x650 [<ffffffff8130556b>] fbcon_cursor+0x13b/0x1c0 [<ffffffff813755f8>] hide_cursor+0x28/0xa0 [<ffffffff81376e98>] redraw_screen+0x168/0x240 [<ffffffff81303891>] fbcon_prepare_logo+0x381/0x420 [<ffffffff81303c7e>] fbcon_init+0x34e/0x590 [<ffffffff81375828>] visual_init+0xb8/0x120 [<ffffffff81377c93>] do_bind_con_driver+0x163/0x380 [<ffffffff81378494>] do_take_over_console+0x114/0x1c0 [<ffffffff81303f23>] do_fbcon_takeover+0x63/0xd0 [<ffffffff813086dd>] fbcon_event_notify+0x68d/0x7e0 [<ffffffff814ff7ac>] notifier_call_chain+0x4c/0x70 [<ffffffff8108c85d>] __blocking_notifier_call_chain+0x4d/0x70 This memory leak cause is, fbcon_ops's cursor_src is allocated in soft_cursor() but not released in con2fb_release_oldinfo(). so, cursor_src is needed to be released when oldinfo is going to be released. Signed-off-by: NMasami Ichikawa <masami256@gmail.com> Signed-off-by: NTomi Valkeinen <tomi.valkeinen@ti.com>
-
- 11 2月, 2014 1 次提交
-
-
由 Keith Packard 提交于
When FB_EVENT_FB_UNBIND is sent, fbcon has two paths, one path taken when there is another frame buffer to switch any affected vcs to and another path when there isn't. In the case where there is another frame buffer to use, fbcon_fb_unbind calls set_con2fb_map to remap all of the affected vcs to the replacement frame buffer. set_con2fb_map will eventually call con2fb_release_oldinfo when the last vcs gets unmapped from the old frame buffer. con2fb_release_oldinfo frees the fbcon data that is hooked off of the fb_info structure, including the cursor timer. In the case where there isn't another frame buffer to use, fbcon_fb_unbind simply calls fbcon_unbind, which doesn't clear the con2fb_map or free the fbcon data hooked from the fb_info structure. In particular, it doesn't stop the cursor blink timer. When the fb_info structure is then freed, we end up with a timer queue pointing into freed memory and "bad things" start happening. This patch first changes con2fb_release_oldinfo so that it can take a NULL pointer for the new frame buffer, but still does all of the deallocation and cursor timer cleanup. Finally, the patch tries to replicate some of what set_con2fb_map does by clearing the con2fb_map for the affected vcs and calling the modified con2fb_release_info function to clean up the fb_info structure. Signed-off-by: NKeith Packard <keithp@keithp.com> Signed-off-by: NTomi Valkeinen <tomi.valkeinen@ti.com>
-
- 17 1月, 2014 2 次提交
-
-
由 Masami Ichikawa 提交于
kmemleak reported a memory leak as below. unreferenced object 0xffff880036ca84c0 (size 16): comm "swapper/0", pid 1, jiffies 4294877407 (age 4434.633s) hex dump (first 16 bytes): 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ff ff ................ backtrace: [<ffffffff814ed01e>] kmemleak_alloc+0x4e/0xb0 [<ffffffff8118913c>] __kmalloc+0x1fc/0x290 [<ffffffff81302c9e>] bit_cursor+0x24e/0x6c0 [<ffffffff812ff2f4>] fbcon_cursor+0x154/0x1d0 [<ffffffff813675d8>] hide_cursor+0x28/0xa0 [<ffffffff81368acf>] update_region+0x6f/0x90 [<ffffffff81300268>] fbcon_switch+0x518/0x550 [<ffffffff813695b9>] redraw_screen+0x189/0x240 [<ffffffff8136a0e0>] do_bind_con_driver+0x360/0x380 [<ffffffff8136a6e4>] do_take_over_console+0x114/0x1c0 [<ffffffff812fdc83>] do_fbcon_takeover+0x63/0xd0 [<ffffffff813023e5>] fbcon_event_notify+0x605/0x720 [<ffffffff81501dcc>] notifier_call_chain+0x4c/0x70 [<ffffffff81087f8d>] __blocking_notifier_call_chain+0x4d/0x70 [<ffffffff81087fc6>] blocking_notifier_call_chain+0x16/0x20 [<ffffffff812f201b>] fb_notifier_call_chain+0x1b/0x20 In this case ops->cursor_state.mask is allocated in bit_cursor() but not freed in fbcon_exit(). So, fbcon_exit() needs to free buffer in its process. In the case, fbcon_exit() was called from fbcon_deinit() when driver called remove_conflicting_framebuffers(). Signed-off-by: NMasami Ichikawa <masami256@gmail.com> Signed-off-by: NTomi Valkeinen <tomi.valkeinen@ti.com>
-
由 Wang YanQing 提交于
Break out as soon as we find a mapped entry con2fb_map. Signed-off-by: NWang YanQing <udknight@gmail.com> Signed-off-by: NTomi Valkeinen <tomi.valkeinen@ti.com>
-
- 21 5月, 2013 4 次提交
-
-
由 Wang YanQing 提交于
Impact: 1:convert all remain take_over_console to do_take_over_console 2:update take_over_console to do_take_over_console in comment Commit dc964189 ("vt: delete unneeded functions register_con_driver|take_over_console") delete take_over_console, but forget to convert remain take_over_console's users to new API do_take_over_console, this patch fix it. Reported-by: NStephen Rothwell <sfr@canb.auug.org.au> Signed-off-by: NWang YanQing <udknight@gmail.com> Signed-off-by: NGreg Kroah-Hartman <gregkh@linuxfoundation.org>
-
由 Wang YanQing 提交于
There are only two place use unregister_con_driver now, this patch convert them to do_unregister_con_driver too, then we can delete unregister_con_driver whos function can be achieved with do_unregister_con_driver easily to reduce code size and duplication. Signed-off-by: NWang YanQing <udknight@gmail.com> Signed-off-by: NGreg Kroah-Hartman <gregkh@linuxfoundation.org>
-
由 Wang YanQing 提交于
Now there is no place use fbcon_takeover, and fbcon_takeover has huge duplication code with do_fbcon_takeover, we can achieve fbcon_takeover's function with do_fbcon_takeover easily, so we can just delete it. Signed-off-by: NWang YanQing <udknight@gmail.com> Signed-off-by: NGreg Kroah-Hartman <gregkh@linuxfoundation.org>
-
由 Wang YanQing 提交于
After commit 054430e7 (fbcon: fix locking harder), there is only one place use do_fbcon_takeover now, this patch convert it to do_fbcon_takeover too, then we can delete fbcon_takeover whos function can be achieved with do_fbcon_takeover easily to reduce code size and duplication. Signed-off-by: NWang YanQing <udknight@gmail.com> Signed-off-by: NGreg Kroah-Hartman <gregkh@linuxfoundation.org>
-
- 15 5月, 2013 1 次提交
-
-
由 Viresh Kumar 提交于
fbcon uses workqueues and it has no real dependency of scheduling these on the cpu which scheduled them. On a idle system, it is observed that and idle cpu wakes up many times just to service this work. It would be better if we can schedule it on a cpu which the scheduler believes to be the most appropriate one. This patch replaces system_wq with system_power_efficient_wq. Cc: Dave Airlie <airlied@redhat.com> Cc: linux-fbdev@vger.kernel.org Signed-off-by: NViresh Kumar <viresh.kumar@linaro.org> Signed-off-by: NTejun Heo <tj@kernel.org>
-
- 24 4月, 2013 1 次提交
-
-
由 Mika Kuoppala 提交于
commit ae128786 Author: Dave Airlie <airlied@redhat.com> Date: Thu Jan 24 16:12:41 2013 +1000 fbcon: don't lose the console font across generic->chip driver switch uses a pointer in vc->vc_font.data to load font into the new driver. However if the font is actually freed, we need to clear the data so that we don't reload font from dangling pointer. Bugzilla: https://bugzilla.redhat.com/show_bug.cgi?id=892340Signed-off-by: NMika Kuoppala <mika.kuoppala@intel.com> Cc: stable@vger.kernel.org Signed-off-by: NDave Airlie <airlied@redhat.com>
-
- 22 2月, 2013 1 次提交
-
-
由 Kamal Mostafa 提交于
Explicitly clear_margins when clearing the logo, in case the font dimensions are non-integral to the framebuffer dimensions. Signed-off-by: NKamal Mostafa <kamal@whence.com> Cc: Florian Tobias Schandinat <FlorianSchandinat@gmx.de> Cc: Tomi Valkeinen <tomi.valkeinen@ti.com> Signed-off-by: NAndrew Morton <akpm@linux-foundation.org> Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
-
- 08 2月, 2013 3 次提交
-
-
由 Dave Airlie 提交于
Okay so Alan's patch handled the case where there was no registered fbcon, however the other path entered in set_con2fb_map pit. In there we called fbcon_takeover, but we also took the console lock in a couple of places. So push the console lock out to the callers of set_con2fb_map, this means fbmem and switcheroo needed to take the lock around the fb notifier entry points that lead to this. This should fix the efifb regression seen by Maarten. Tested-by: NMaarten Lankhorst <maarten.lankhorst@canonical.com> Tested-by: NLu Hua <huax.lu@intel.com> Signed-off-by: NDave Airlie <airlied@redhat.com>
-
由 Takashi Iwai 提交于
I've still got lockdep warnings even after Alan's patch, and it seems that yet more band aids are required to paper over similar paths for unbind_con_driver() and unregister_con_driver(). After this hack, lockdep warnings are finally gone. Signed-off-by: NTakashi Iwai <tiwai@suse.de> Cc: Alan Cox <alan@linux.intel.com> Cc: Florian Tobias Schandinat <FlorianSchandinat@gmx.de> Cc: Jiri Kosina <jkosina@suse.cz> Cc: stable <stable@vger.kernel.org> Tested-by: NSedat Dilek <sedat.dilek@gmail.com> Signed-off-by: NAndrew Morton <akpm@linux-foundation.org> Signed-off-by: NDave Airlie <airlied@redhat.com>
-
由 Alan Cox 提交于
Adjust the console layer to allow a take over call where the caller already holds the locks. Make the fb layer lock in order. This is partly a band aid, the fb layer is terminally confused about the locking rules it uses for its notifiers it seems. [akpm@linux-foundation.org: remove stray non-ascii char, tidy comment] [akpm@linux-foundation.org: export do_take_over_console()] [airlied: cleanup another non-ascii char] Signed-off-by: NAlan Cox <alan@linux.intel.com> Cc: Florian Tobias Schandinat <FlorianSchandinat@gmx.de> Cc: Stephen Rothwell <sfr@canb.auug.org.au> Cc: Jiri Kosina <jkosina@suse.cz> Cc: stable <stable@vger.kernel.org> Tested-by: NSedat Dilek <sedat.dilek@gmail.com> Reviewed-by: NDaniel Vetter <daniel.vetter@ffwll.ch> Signed-off-by: NAndrew Morton <akpm@linux-foundation.org> Signed-off-by: NDave Airlie <airlied@redhat.com>
-
- 07 2月, 2013 1 次提交
-
-
由 Dave Airlie 提交于
If grub2 loads efifb/vesafb, then when systemd starts it can set the console font on that framebuffer device, however when we then load the native KMS driver, the first thing it does is tear down the generic framebuffer driver. The thing is the generic code is doing the right thing, it frees the font because otherwise it would leak memory. However we can assume that if you are removing the generic firmware driver (vesa/efi/offb), that a new driver *should* be loading soon after, so we effectively leak the font. However the old code left a dangling pointer in vc->vc_font.data and we can now reuse that dangling pointer to load the font into the new driver, now that we aren't freeing it. Bugzilla: https://bugzilla.redhat.com/show_bug.cgi?id=892340 Cc: Kay Sievers <kay.sievers@vrfy.org> Cc: stable@vger.kernel.org Signed-off-by: NDave Airlie <airlied@redhat.com>
-
- 23 8月, 2012 1 次提交
-
-
由 Paul Cercueil 提交于
Signed-off-by: NPaul Cercueil <paul@crapouillou.net> Signed-off-by: NFlorian Tobias Schandinat <FlorianSchandinat@gmx.de>
-
- 22 8月, 2012 2 次提交
-
-
由 Dave Airlie 提交于
So we've had a fair few reports of fbcon handover breakage between efi/vesafb and i915 surface recently, so I dedicated a couple of days to finding the problem. Essentially the last thing we saw was the conflicting framebuffer message and that was all. So after much tracing with direct netconsole writes (printks under console_lock not so useful), I think I found the race. Thread A (driver load) Thread B (timer thread) unbind_con_driver -> | bind_con_driver -> | vc->vc_sw->con_deinit -> | fbcon_deinit -> | console_lock() | | | | fbcon_flashcursor timer fires | console_lock() <- blocked for A | | fbcon_del_cursor_timer -> del_timer_sync (BOOM) Of course because all of this is under the console lock, we never see anything, also since we also just unbound the active console guess what we never see anything. Hopefully this fixes the problem for anyone seeing vesafb->kms driver handoff. v1.1: add comment suggestion from Alan. Cc: stable@vger.kernel.org Signed-off-by: NDave Airlie <airlied@redhat.com>
-
由 Dave Airlie 提交于
So we've had a fair few reports of fbcon handover breakage between efi/vesafb and i915 surface recently, so I dedicated a couple of days to finding the problem. Essentially the last thing we saw was the conflicting framebuffer message and that was all. So after much tracing with direct netconsole writes (printks under console_lock not so useful), I think I found the race. Thread A (driver load) Thread B (timer thread) unbind_con_driver -> | bind_con_driver -> | vc->vc_sw->con_deinit -> | fbcon_deinit -> | console_lock() | | | | fbcon_flashcursor timer fires | console_lock() <- blocked for A | | fbcon_del_cursor_timer -> del_timer_sync (BOOM) Of course because all of this is under the console lock, we never see anything, also since we also just unbound the active console guess what we never see anything. Hopefully this fixes the problem for anyone seeing vesafb->kms driver handoff. Signed-off-by: NDavid Airlie <airlied@redhat.com> Acked-by: NAlan Cox <alan@lxorguk.ukuu.org.uk> Cc: stable@vger.kernel.org Tested-by: NJosh Boyer <jwboyer@gmail.com> Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
-
- 29 3月, 2012 1 次提交
-
-
由 David Howells 提交于
Remove all #inclusions of asm/system.h preparatory to splitting and killing it. Performed with the following command: perl -p -i -e 's!^#\s*include\s*<asm/system[.]h>.*\n!!' `grep -Irl '^#\s*include\s*<asm/system[.]h>' *` Signed-off-by: NDavid Howells <dhowells@redhat.com>
-
- 31 3月, 2011 1 次提交
-
-
由 Sergey Senozhatsky 提交于
Signed-off-by: NSergey Senozhatsky <sergey.senozhatsky@gmail.com> Signed-off-by: NPaul Mundt <lethal@linux-sh.org>
-
- 22 3月, 2011 1 次提交
-
-
由 Dave Airlie 提交于
Situation as follow: 2 GPUs + vesafb + kms. GPU 1 is primary, vesafb binds to it as fb0 radeon loads GPU 0 loads as fb1 GPU 1 loads, vesafb gets kicked off which causes fb0 to unbind console, which causes the dummy console to rebind. this means fbcon_deinit gets called, which calls fbcon_exit since the console isn't bound anymore and we set fbcon_has_exited. GPU 1 creates a new fb0 which is primary and we want to be console. fbcon_fb_registered gets called sets the primary up and calls set_con2fb_map, however as fbcon_has_exited is set nothing further ever happens. This patch bypasses the fbcon_has_exited and checks if the console is unbound, if its unbound it calls the fbcon_takeover which calls the vt layer to call the fbcon_startup method and everthing works. Signed-off-by: NDave Airlie <airlied@redhat.com> Signed-off-by: NPaul Mundt <lethal@linux-sh.org>
-
- 26 1月, 2011 1 次提交
-
-
由 Torben Hohn 提交于
The -rt patches change the console_semaphore to console_mutex. As a result, a quite large chunk of the patches changes all acquire/release_console_sem() to acquire/release_console_mutex() This commit makes things use more neutral function names which dont make implications about the underlying lock. The only real change is the return value of console_trylock which is inverted from try_acquire_console_sem() This patch also paves the way to switching console_sem from a semaphore to a mutex. [akpm@linux-foundation.org: coding-style fixes] [akpm@linux-foundation.org: make console_trylock return 1 on success, per Geert] Signed-off-by: NTorben Hohn <torbenh@gmx.de> Cc: Thomas Gleixner <tglx@tglx.de> Cc: Greg KH <gregkh@suse.de> Cc: Ingo Molnar <mingo@elte.hu> Cc: Geert Uytterhoeven <geert@linux-m68k.org> Signed-off-by: NAndrew Morton <akpm@linux-foundation.org> Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
-
- 23 9月, 2010 1 次提交
-
-
由 Jarek Poplawski 提交于
Fix the lockdep warning: [ 13.657164] INFO: trying to register non-static key. [ 13.657169] the code is fine but needs lockdep annotation. [ 13.657171] turning off the locking correctness validator. [ 13.657177] Pid: 622, comm: modprobe Not tainted 2.6.36-rc3c #8 [ 13.657180] Call Trace: [ 13.657194] [<c13002c8>] ? printk+0x18/0x20 [ 13.657202] [<c1056cf6>] register_lock_class+0x336/0x350 [ 13.657208] [<c1058bf9>] __lock_acquire+0x449/0x1180 [ 13.657215] [<c1059997>] lock_acquire+0x67/0x80 [ 13.657222] [<c1042bf1>] ? __cancel_work_timer+0x51/0x230 [ 13.657227] [<c1042c23>] __cancel_work_timer+0x83/0x230 [ 13.657231] [<c1042bf1>] ? __cancel_work_timer+0x51/0x230 [ 13.657236] [<c10582b2>] ? mark_held_locks+0x62/0x80 [ 13.657243] [<c10b3a2f>] ? kfree+0x7f/0xe0 [ 13.657248] [<c105853c>] ? trace_hardirqs_on_caller+0x11c/0x160 [ 13.657253] [<c105858b>] ? trace_hardirqs_on+0xb/0x10 [ 13.657259] [<c117f4cd>] ? fbcon_deinit+0x16d/0x1e0 [ 13.657263] [<c117f4cd>] ? fbcon_deinit+0x16d/0x1e0 [ 13.657268] [<c1042dea>] cancel_work_sync+0xa/0x10 [ 13.657272] [<c117f444>] fbcon_deinit+0xe4/0x1e0 ... The warning is caused by trying to cancel an uninitialized work from fbcon_exit(). Fix it by adding a check for queue.func, similarly to other places in this code. Signed-off-by: NJarek Poplawski <jarkao2@gmail.com> Signed-off-by: NAndrew Morton <akpm@linux-foundation.org> Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
-
- 11 8月, 2010 1 次提交
-
-
由 Denys Vlasenko 提交于
This function's body is good two screenfuls and it has six callsites. No apparent reason why it is marked inline. Signed-off-by: NDenys Vlasenko <vda.linux@googlemail.com> Signed-off-by: NAndrew Morton <akpm@linux-foundation.org> Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
-