<feed xmlns='http://www.w3.org/2005/Atom'>
<title>pm24.git/drivers/video/fbmem.c, branch v3.8</title>
<subtitle>Unnamed repository; edit this file 'description' to name the repository.
</subtitle>
<id>https://git.kobert.dev/pm24.git/atom?h=v3.8</id>
<link rel='self' href='https://git.kobert.dev/pm24.git/atom?h=v3.8'/>
<link rel='alternate' type='text/html' href='https://git.kobert.dev/pm24.git/'/>
<updated>2012-10-09T07:22:19Z</updated>
<entry>
<title>mm: kill vma flag VM_RESERVED and mm-&gt;reserved_vm counter</title>
<updated>2012-10-09T07:22:19Z</updated>
<author>
<name>Konstantin Khlebnikov</name>
<email>khlebnikov@openvz.org</email>
</author>
<published>2012-10-08T23:29:02Z</published>
<link rel='alternate' type='text/html' href='https://git.kobert.dev/pm24.git/commit/?id=314e51b9851b4f4e8ab302243ff5a6fc6147f379'/>
<id>urn:sha1:314e51b9851b4f4e8ab302243ff5a6fc6147f379</id>
<content type='text'>
A long time ago, in v2.4, VM_RESERVED kept swapout process off VMA,
currently it lost original meaning but still has some effects:

 | effect                 | alternative flags
-+------------------------+---------------------------------------------
1| account as reserved_vm | VM_IO
2| skip in core dump      | VM_IO, VM_DONTDUMP
3| do not merge or expand | VM_IO, VM_DONTEXPAND, VM_HUGETLB, VM_PFNMAP
4| do not mlock           | VM_IO, VM_DONTEXPAND, VM_HUGETLB, VM_PFNMAP

This patch removes reserved_vm counter from mm_struct.  Seems like nobody
cares about it, it does not exported into userspace directly, it only
reduces total_vm showed in proc.

Thus VM_RESERVED can be replaced with VM_IO or pair VM_DONTEXPAND | VM_DONTDUMP.

remap_pfn_range() and io_remap_pfn_range() set VM_IO|VM_DONTEXPAND|VM_DONTDUMP.
remap_vmalloc_range() set VM_DONTEXPAND | VM_DONTDUMP.

[akpm@linux-foundation.org: drivers/vfio/pci/vfio_pci.c fixup]
Signed-off-by: Konstantin Khlebnikov &lt;khlebnikov@openvz.org&gt;
Cc: Alexander Viro &lt;viro@zeniv.linux.org.uk&gt;
Cc: Carsten Otte &lt;cotte@de.ibm.com&gt;
Cc: Chris Metcalf &lt;cmetcalf@tilera.com&gt;
Cc: Cyrill Gorcunov &lt;gorcunov@openvz.org&gt;
Cc: Eric Paris &lt;eparis@redhat.com&gt;
Cc: H. Peter Anvin &lt;hpa@zytor.com&gt;
Cc: Hugh Dickins &lt;hughd@google.com&gt;
Cc: Ingo Molnar &lt;mingo@redhat.com&gt;
Cc: James Morris &lt;james.l.morris@oracle.com&gt;
Cc: Jason Baron &lt;jbaron@redhat.com&gt;
Cc: Kentaro Takeda &lt;takedakn@nttdata.co.jp&gt;
Cc: Matt Helsley &lt;matthltc@us.ibm.com&gt;
Cc: Nick Piggin &lt;npiggin@kernel.dk&gt;
Cc: Oleg Nesterov &lt;oleg@redhat.com&gt;
Cc: Peter Zijlstra &lt;a.p.zijlstra@chello.nl&gt;
Cc: Robert Richter &lt;robert.richter@amd.com&gt;
Cc: Suresh Siddha &lt;suresh.b.siddha@intel.com&gt;
Cc: Tetsuo Handa &lt;penguin-kernel@I-love.SAKURA.ne.jp&gt;
Cc: Venkatesh Pallipadi &lt;venki@google.com&gt;
Acked-by: Linus Torvalds &lt;torvalds@linux-foundation.org&gt;
Signed-off-by: Andrew Morton &lt;akpm@linux-foundation.org&gt;
Signed-off-by: Linus Torvalds &lt;torvalds@linux-foundation.org&gt;
</content>
</entry>
<entry>
<title>fbdev: add events for early fb event support</title>
<updated>2012-05-29T23:22:28Z</updated>
<author>
<name>Inki Dae</name>
<email>inki.dae@samsung.com</email>
</author>
<published>2012-05-29T22:07:12Z</published>
<link rel='alternate' type='text/html' href='https://git.kobert.dev/pm24.git/commit/?id=bf05929f41d6c3c79ec1961d90d808a634f09dd9'/>
<id>urn:sha1:bf05929f41d6c3c79ec1961d90d808a634f09dd9</id>
<content type='text'>
Add FB_EARLY_EVENT_BLANK and FB_R_EARLY_EVENT_BLANK event mode supports.
first, fb_notifier_call_chain() is called with FB_EARLY_EVENT_BLANK and
fb_blank() of specific fb driver is called and then
fb_notifier_call_chain() is called with FB_EVENT_BLANK again at
fb_blank().  and if fb_blank() was failed then fb_nitifier_call_chain()
would be called with FB_R_EARLY_EVENT_BLANK to revert the previous
effects.

Signed-off-by: Inki Dae &lt;inki.dae@samsung.com&gt;
Signed-off-by: Kyungmin Park &lt;kyungmin.park@samsung.com&gt;
Cc: Lars-Peter Clausen &lt;lars@metafoo.de&gt;
Acked-by: Florian Tobias Schandinat &lt;FlorianSchandinat@gmx.de&gt;
Cc: Richard Purdie &lt;rpurdie@rpsys.net&gt;
Signed-off-by: Andrew Morton &lt;akpm@linux-foundation.org&gt;
Signed-off-by: Linus Torvalds &lt;torvalds@linux-foundation.org&gt;
</content>
</entry>
<entry>
<title>udlfb: remove sysfs framebuffer device with USB .disconnect()</title>
<updated>2012-03-15T13:35:22Z</updated>
<author>
<name>Kay Sievers</name>
<email>kay.sievers@vrfy.org</email>
</author>
<published>2012-01-28T19:57:46Z</published>
<link rel='alternate' type='text/html' href='https://git.kobert.dev/pm24.git/commit/?id=ce880cb860f36694d2cdebfac9e6ae18176fe4c4'/>
<id>urn:sha1:ce880cb860f36694d2cdebfac9e6ae18176fe4c4</id>
<content type='text'>
The USB graphics card driver delays the unregistering of the framebuffer
device to a workqueue, which breaks the userspace visible remove uevent
sequence. Recent userspace tools started to support USB graphics card
hotplug out-of-the-box and rely on proper events sent by the kernel.

The framebuffer device is a direct child of the USB interface which is
removed immediately after the USB .disconnect() callback. But the fb device
in /sys stays around until its final cleanup, at a time where all the parent
devices have been removed already.

To work around that, we remove the sysfs fb device directly in the USB
.disconnect() callback and leave only the cleanup of the internal fb
data to the delayed work.

Before:
 add      /devices/pci0000:00/0000:00:1d.0/usb2/2-1/2-1.2 (usb)
 add      /devices/pci0000:00/0000:00:1d.0/usb2/2-1/2-1.2/2-1.2:1.0 (usb)
 add      /devices/pci0000:00/0000:00:1d.0/usb2/2-1/2-1.2/2-1.2:1.0/graphics/fb0 (graphics)
 remove   /devices/pci0000:00/0000:00:1d.0/usb2/2-1/2-1.2/2-1.2:1.0 (usb)
 remove   /devices/pci0000:00/0000:00:1d.0/usb2/2-1/2-1.2 (usb)
 remove   /2-1.2:1.0/graphics/fb0 (graphics)

After:
 add      /devices/pci0000:00/0000:00:1d.0/usb2/2-1/2-1.2 (usb)
 add      /devices/pci0000:00/0000:00:1d.0/usb2/2-1/2-1.2/2-1.2:1.0 (usb)
 add      /devices/pci0000:00/0000:00:1d.0/usb2/2-1/2-1.2/2-1.2:1.0/graphics/fb1 (graphics)
 remove   /devices/pci0000:00/0000:00:1d.0/usb2/2-1/2-1.2/2-1.2:1.0/graphics/fb1 (graphics)
 remove   /devices/pci0000:00/0000:00:1d.0/usb2/2-1/2-1.2/2-1.2:1.0 (usb)
 remove   /devices/pci0000:00/0000:00:1d.0/usb2/2-1/2-1.2 (usb)

Cc: stable@vger.kernel.org
Tested-by: Bernie Thompson &lt;bernie@plugable.com&gt;
Acked-by: Bernie Thompson &lt;bernie@plugable.com&gt;
Signed-off-by: Kay Sievers &lt;kay.sievers@vrfy.org&gt;
Signed-off-by: Florian Tobias Schandinat &lt;FlorianSchandinat@gmx.de&gt;
</content>
</entry>
<entry>
<title>fbdev: Add FOURCC-based format configuration API</title>
<updated>2011-12-19T20:07:13Z</updated>
<author>
<name>Laurent Pinchart</name>
<email>laurent.pinchart@ideasonboard.com</email>
</author>
<published>2011-12-13T13:02:26Z</published>
<link rel='alternate' type='text/html' href='https://git.kobert.dev/pm24.git/commit/?id=fb21c2f42879c05c76ea9e249b6905fc729f8529'/>
<id>urn:sha1:fb21c2f42879c05c76ea9e249b6905fc729f8529</id>
<content type='text'>
This API will be used to support YUV frame buffer formats in a standard
way.

Last but not least, create a much needed fbdev API documentation and
document the format setting APIs.

Signed-off-by: Laurent Pinchart &lt;laurent.pinchart@ideasonboard.com&gt;
Signed-off-by: Florian Tobias Schandinat &lt;FlorianSchandinat@gmx.de&gt;
</content>
</entry>
<entry>
<title>fb: avoid possible deadlock caused by fb_set_suspend</title>
<updated>2011-09-02T17:58:29Z</updated>
<author>
<name>Herton Ronaldo Krzesinski</name>
<email>herton@mandriva.com.br</email>
</author>
<published>2011-06-17T19:02:39Z</published>
<link rel='alternate' type='text/html' href='https://git.kobert.dev/pm24.git/commit/?id=9e769ff3f585db8f978f9113be83d36c7e3965dd'/>
<id>urn:sha1:9e769ff3f585db8f978f9113be83d36c7e3965dd</id>
<content type='text'>
A lock ordering issue can cause deadlocks: in framebuffer/console code,
all needed struct fb_info locks are taken before acquire_console_sem(),
in places which need to take console semaphore.

But fb_set_suspend is always called with console semaphore held, and
inside it we call lock_fb_info which gets the fb_info lock, inverse
locking order of what the rest of the code does. This causes a real
deadlock issue, when we write to state fb sysfs attribute (which calls
fb_set_suspend) while a framebuffer is being unregistered by
remove_conflicting_framebuffers, as can be shown by following show
blocked state trace on a test program which loads i915 and runs another
forked processes writing to state attribute:

Test process with semaphore held and trying to get fb_info lock:
..
fb-test2      D 0000000000000000     0   237    228 0x00000000
 ffff8800774f3d68 0000000000000082 00000000000135c0 00000000000135c0
 ffff880000000000 ffff8800774f3fd8 ffff8800774f3fd8 ffff880076ee4530
 00000000000135c0 ffff8800774f3fd8 ffff8800774f2000 00000000000135c0
Call Trace:
 [&lt;ffffffff8141287a&gt;] __mutex_lock_slowpath+0x11a/0x1e0
 [&lt;ffffffff814142f2&gt;] ? _raw_spin_lock_irq+0x22/0x40
 [&lt;ffffffff814123d3&gt;] mutex_lock+0x23/0x50
 [&lt;ffffffff8125dfc5&gt;] lock_fb_info+0x25/0x60
 [&lt;ffffffff8125e3f0&gt;] fb_set_suspend+0x20/0x80
 [&lt;ffffffff81263e2f&gt;] store_fbstate+0x4f/0x70
 [&lt;ffffffff812e7f70&gt;] dev_attr_store+0x20/0x30
 [&lt;ffffffff811c46b4&gt;] sysfs_write_file+0xd4/0x160
 [&lt;ffffffff81155a26&gt;] vfs_write+0xc6/0x190
 [&lt;ffffffff81155d51&gt;] sys_write+0x51/0x90
 [&lt;ffffffff8100c012&gt;] system_call_fastpath+0x16/0x1b
..
modprobe process stalled because has the fb_info lock (got inside
unregister_framebuffer) but waiting for the semaphore held by the
test process which is waiting to get the fb_info lock:
..
modprobe      D 0000000000000000     0   230    218 0x00000000
 ffff880077a4d618 0000000000000082 0000000000000001 0000000000000001
 ffff880000000000 ffff880077a4dfd8 ffff880077a4dfd8 ffff8800775a2e20
 00000000000135c0 ffff880077a4dfd8 ffff880077a4c000 00000000000135c0
Call Trace:
 [&lt;ffffffff81411fe5&gt;] schedule_timeout+0x215/0x310
 [&lt;ffffffff81058051&gt;] ? get_parent_ip+0x11/0x50
 [&lt;ffffffff814130dd&gt;] __down+0x6d/0xb0
 [&lt;ffffffff81089f71&gt;] down+0x41/0x50
 [&lt;ffffffff810629ac&gt;] acquire_console_sem+0x2c/0x50
 [&lt;ffffffff812ca53d&gt;] unbind_con_driver+0xad/0x2d0
 [&lt;ffffffff8126f5f7&gt;] fbcon_event_notify+0x457/0x890
 [&lt;ffffffff814144ff&gt;] ? _raw_spin_unlock_irqrestore+0x1f/0x50
 [&lt;ffffffff81058051&gt;] ? get_parent_ip+0x11/0x50
 [&lt;ffffffff8141836d&gt;] notifier_call_chain+0x4d/0x70
 [&lt;ffffffff8108a3b8&gt;] __blocking_notifier_call_chain+0x58/0x80
 [&lt;ffffffff8108a3f6&gt;] blocking_notifier_call_chain+0x16/0x20
 [&lt;ffffffff8125dabb&gt;] fb_notifier_call_chain+0x1b/0x20
 [&lt;ffffffff8125e6ac&gt;] unregister_framebuffer+0x7c/0x130
 [&lt;ffffffff8125e8b3&gt;] remove_conflicting_framebuffers+0x153/0x180
 [&lt;ffffffff8125eef3&gt;] register_framebuffer+0x93/0x2c0
 [&lt;ffffffffa0331112&gt;] drm_fb_helper_single_fb_probe+0x252/0x2f0 [drm_kms_helper]
 [&lt;ffffffffa03314a3&gt;] drm_fb_helper_initial_config+0x2f3/0x6d0 [drm_kms_helper]
 [&lt;ffffffffa03318dd&gt;] ? drm_fb_helper_single_add_all_connectors+0x5d/0x1c0 [drm_kms_helper]
 [&lt;ffffffffa037b588&gt;] intel_fbdev_init+0xa8/0x160 [i915]
 [&lt;ffffffffa0343d74&gt;] i915_driver_load+0x854/0x12b0 [i915]
 [&lt;ffffffffa02f0e7e&gt;] drm_get_pci_dev+0x19e/0x360 [drm]
 [&lt;ffffffff8141821d&gt;] ? sub_preempt_count+0x9d/0xd0
 [&lt;ffffffffa0386f91&gt;] i915_pci_probe+0x15/0x17 [i915]
 [&lt;ffffffff8124481f&gt;] local_pci_probe+0x5f/0xd0
 [&lt;ffffffff81244f89&gt;] pci_device_probe+0x119/0x120
 [&lt;ffffffff812eccaa&gt;] ? driver_sysfs_add+0x7a/0xb0
 [&lt;ffffffff812ed003&gt;] driver_probe_device+0xa3/0x290
 [&lt;ffffffff812ed1f0&gt;] ? __driver_attach+0x0/0xb0
 [&lt;ffffffff812ed29b&gt;] __driver_attach+0xab/0xb0
 [&lt;ffffffff812ed1f0&gt;] ? __driver_attach+0x0/0xb0
 [&lt;ffffffff812ebd3e&gt;] bus_for_each_dev+0x5e/0x90
 [&lt;ffffffff812ecc2e&gt;] driver_attach+0x1e/0x20
 [&lt;ffffffff812ec6f2&gt;] bus_add_driver+0xe2/0x320
 [&lt;ffffffffa03aa000&gt;] ? i915_init+0x0/0x96 [i915]
 [&lt;ffffffff812ed536&gt;] driver_register+0x76/0x140
 [&lt;ffffffffa03aa000&gt;] ? i915_init+0x0/0x96 [i915]
 [&lt;ffffffff81245216&gt;] __pci_register_driver+0x56/0xd0
 [&lt;ffffffffa02f1264&gt;] drm_pci_init+0xe4/0xf0 [drm]
 [&lt;ffffffffa03aa000&gt;] ? i915_init+0x0/0x96 [i915]
 [&lt;ffffffffa02e84a8&gt;] drm_init+0x58/0x70 [drm]
 [&lt;ffffffffa03aa094&gt;] i915_init+0x94/0x96 [i915]
 [&lt;ffffffff81002194&gt;] do_one_initcall+0x44/0x190
 [&lt;ffffffff810a066b&gt;] sys_init_module+0xcb/0x210
 [&lt;ffffffff8100c012&gt;] system_call_fastpath+0x16/0x1b
..

fb-test2 which reproduces above is available on kernel.org bug #26232.
To solve this issue, avoid calling lock_fb_info inside fb_set_suspend,
and move it out to where needed (callers of fb_set_suspend must call
lock_fb_info before if needed). So far, the only place which needs to
call lock_fb_info is store_fbstate, all other places which calls
fb_set_suspend are suspend/resume hooks that should not need the lock as
they should be run only when processes are already frozen in
suspend/resume.

References: https://bugzilla.kernel.org/show_bug.cgi?id=26232
Signed-off-by: Herton Ronaldo Krzesinski &lt;herton@mandriva.com.br&gt;
Signed-off-by: Florian Tobias Schandinat &lt;FlorianSchandinat@gmx.de&gt;
Cc: stable@kernel.org
</content>
</entry>
<entry>
<title>Further fbcon sanity checking</title>
<updated>2011-05-14T17:28:54Z</updated>
<author>
<name>Bruno Prémont</name>
<email>bonbons@linux-vserver.org</email>
</author>
<published>2011-05-14T10:24:15Z</published>
<link rel='alternate' type='text/html' href='https://git.kobert.dev/pm24.git/commit/?id=c590cece75728a85ea06801df3ebad2d7ad8612c'/>
<id>urn:sha1:c590cece75728a85ea06801df3ebad2d7ad8612c</id>
<content type='text'>
This moves the

    if (num_registered_fb == FB_MAX)
            return -ENXIO;

check _AFTER_ the call to do_remove_conflicting_framebuffers() as this
would (now in a safe way) allow a native driver to replace the
conflicting one even if all slots in registered_fb[] are taken.

This also prevents unregistering a framebuffer that is no longer
registered (vga16f will unregister at module unload time even if the
frame buffer had been unregistered earlier due to being found
conflicting).

Signed-off-by: Bruno Prémont &lt;bonbons@linux-vserver.org&gt;
Signed-off-by: Linus Torvalds &lt;torvalds@linux-foundation.org&gt;
</content>
</entry>
<entry>
<title>fbmem: fix remove_conflicting_framebuffers races</title>
<updated>2011-05-14T17:23:44Z</updated>
<author>
<name>Linus Torvalds</name>
<email>torvalds@linux-foundation.org</email>
</author>
<published>2011-05-13T23:16:41Z</published>
<link rel='alternate' type='text/html' href='https://git.kobert.dev/pm24.git/commit/?id=712f3147aee0fbbbbed2da20b21b272c5505125e'/>
<id>urn:sha1:712f3147aee0fbbbbed2da20b21b272c5505125e</id>
<content type='text'>
When a register_framebuffer() call results in us removing old
conflicting framebuffers, the new registration_lock doesn't protect that
situation.  And we can't just add the same locking to the function,
because these functions call each other: register_framebuffer() calls
remove_conflicting_framebuffers, which in turn calls
unregister_framebuffer for any conflicting entry.

In order to fix it, this just creates wrapper functions around all three
functions and makes the versions that actually do the work be called
"do_xxx()", leaving just the wrapper that gets the lock and calls the
worker function.

So the rule becomes simply that "do_xxxx()" has to be called with the
lock held, and now do_register_framebuffer() can just call
do_remove_conflicting_framebuffers(), and that in turn can call
_do_unregister_framebuffer(), and there is no deadlock, and we can hold
the registration lock over the whole sequence, fixing the races.

It also makes error cases simpler, and fixes one situation where we
would return from unregister_framebuffer() without releasing the lock,
pointed out by Bruno Prémont.

Tested-by: Bruno Prémont &lt;bonbons@linux-vserver.org&gt;
Tested-by: Anca Emanuel &lt;anca.emanuel@gmail.com&gt;
Signed-off-by: Linus Torvalds &lt;torvalds@linux-foundation.org&gt;
</content>
</entry>
<entry>
<title>fbmem: make read/write/ioctl use the frame buffer at open time</title>
<updated>2011-05-12T14:46:43Z</updated>
<author>
<name>Linus Torvalds</name>
<email>torvalds@linux-foundation.org</email>
</author>
<published>2011-05-11T21:58:34Z</published>
<link rel='alternate' type='text/html' href='https://git.kobert.dev/pm24.git/commit/?id=c47747fde931c02455683bd00ea43eaa62f35b0e'/>
<id>urn:sha1:c47747fde931c02455683bd00ea43eaa62f35b0e</id>
<content type='text'>
read/write/ioctl on a fbcon file descriptor has traditionally used the
fbcon not when it was opened, but as it was at the time of the call.
That makes no sense, but the lack of sense is much more obvious now that
we properly ref-count the usage - it means that the ref-counting doesn't
actually protect operations we do on the frame buffer.

This changes it to look at the fb_info that we got at open time, but in
order to avoid using a frame buffer long after it has been unregistered,
we do verify that it is still current, and return -ENODEV if not.

Acked-by: Tim Gardner &lt;tim.gardner@canonical.com&gt;
Tested-by: Daniel J Blueman &lt;daniel.blueman@gmail.com&gt;
Tested-by: Anca Emanuel &lt;anca.emanuel@gmail.com&gt;
Cc: Bruno Prémont &lt;bonbons@linux-vserver.org&gt;
Cc: Alan Cox &lt;alan@lxorguk.ukuu.org.uk&gt;
Cc: Paul Mundt &lt;lethal@linux-sh.org&gt;
Cc: Dave Airlie &lt;airlied@redhat.com&gt;
Cc: Andy Whitcroft &lt;andy.whitcroft@canonical.com&gt;
Signed-off-by: Linus Torvalds &lt;torvalds@linux-foundation.org&gt;
</content>
</entry>
<entry>
<title>fbcon: add lifetime refcount to opened frame buffers</title>
<updated>2011-05-12T14:37:51Z</updated>
<author>
<name>Linus Torvalds</name>
<email>torvalds@linux-foundation.org</email>
</author>
<published>2011-05-11T21:49:36Z</published>
<link rel='alternate' type='text/html' href='https://git.kobert.dev/pm24.git/commit/?id=698b368275c3fa98261159253cfc79653f9dffc6'/>
<id>urn:sha1:698b368275c3fa98261159253cfc79653f9dffc6</id>
<content type='text'>
This just adds the refcount and the new registration lock logic.  It
does not (for example) actually change the read/write/ioctl routines to
actually use the frame buffer that was opened: those function still end
up alway susing whatever the current frame buffer is at the time of the
call.

Without this, if something holds the frame buffer open over a
framebuffer switch, the close() operation after the switch will access a
fb_info that has been free'd by the unregistering of the old frame
buffer.

(The read/write/ioctl operations will normally not cause problems,
because they will - illogically - pick up the new fbcon instead.  But a
switch that happens just as one of those is going on might see problems
too, the window is just much smaller: one individual op rather than the
whole open-close sequence.)

This use-after-free is apparently fairly easily triggered by the Ubuntu
11.04 boot sequence.

Acked-by: Tim Gardner &lt;tim.gardner@canonical.com&gt;
Tested-by: Daniel J Blueman &lt;daniel.blueman@gmail.com&gt;
Tested-by: Anca Emanuel &lt;anca.emanuel@gmail.com&gt;
Cc: Bruno Prémont &lt;bonbons@linux-vserver.org&gt;
Cc: Alan Cox &lt;alan@lxorguk.ukuu.org.uk&gt;
Cc: Paul Mundt &lt;lethal@linux-sh.org&gt;
Cc: Dave Airlie &lt;airlied@redhat.com&gt;
Cc: Andy Whitcroft &lt;andy.whitcroft@canonical.com&gt;
Signed-off-by: Linus Torvalds &lt;torvalds@linux-foundation.org&gt;
</content>
</entry>
<entry>
<title>fb: Reduce priority of resource conflict message</title>
<updated>2011-04-06T16:58:29Z</updated>
<author>
<name>Matthew Garrett</name>
<email>mjg@redhat.com</email>
</author>
<published>2011-04-04T21:39:54Z</published>
<link rel='alternate' type='text/html' href='https://git.kobert.dev/pm24.git/commit/?id=47c87d930f3db4fc3a30505075e07f5597e2e953'/>
<id>urn:sha1:47c87d930f3db4fc3a30505075e07f5597e2e953</id>
<content type='text'>
It's expected that efifb will conflict with a native driver, so the
handover message should be informational rather than an error.

Signed-off-by: Matthew Garrett &lt;mjg@redhat.com&gt;
Acked-by: Dave Airlie &lt;airlied@redhat.com&gt;
Signed-off-by: Paul Mundt &lt;lethal@linux-sh.org&gt;
</content>
</entry>
</feed>
