[kernel] r12132 - in dists/sid/linux-2.6/debian: . patches/bugfix/all patches/series
Ian Campbell
ijc-guest at alioth.debian.org
Fri Aug 22 18:20:03 UTC 2008
Author: ijc-guest
Date: Fri Aug 22 18:20:01 2008
New Revision: 12132
Log:
Import upstream fix to fb-defio driver to fix Xen framebuffer.
commit d847471d063663b9f36927d265c66a270c0cfaab
Author: Ian Campbell <ijc at hellion.org.uk>
Date: Wed Aug 20 14:09:23 2008 -0700
fbdefio: add set_page_dirty handler to deferred IO FB
Added:
dists/sid/linux-2.6/debian/patches/bugfix/all/fbdefio-add-set_page_dirty-handler-to-deferred-io-fb.patch
Modified:
dists/sid/linux-2.6/debian/changelog
dists/sid/linux-2.6/debian/patches/series/4
Modified: dists/sid/linux-2.6/debian/changelog
==============================================================================
--- dists/sid/linux-2.6/debian/changelog (original)
+++ dists/sid/linux-2.6/debian/changelog Fri Aug 22 18:20:01 2008
@@ -81,6 +81,9 @@
* delay calls to sched_clock() until after sched_clock_init() to prevent
inaccurate printk timings on ia64 and presumably other architectures
+ [ Ian Campbell ]
+ * [xen] import upstream fix to fb-defio driver used by Xen framebuffer.
+
-- dann frazier <dannf at debian.org> Wed, 20 Aug 2008 16:58:30 -0600
linux-2.6 (2.6.26-3) unstable; urgency=low
Added: dists/sid/linux-2.6/debian/patches/bugfix/all/fbdefio-add-set_page_dirty-handler-to-deferred-io-fb.patch
==============================================================================
--- (empty file)
+++ dists/sid/linux-2.6/debian/patches/bugfix/all/fbdefio-add-set_page_dirty-handler-to-deferred-io-fb.patch Fri Aug 22 18:20:01 2008
@@ -0,0 +1,103 @@
+commit d847471d063663b9f36927d265c66a270c0cfaab
+Author: Ian Campbell <ijc at hellion.org.uk>
+Date: Wed Aug 20 14:09:23 2008 -0700
+
+ fbdefio: add set_page_dirty handler to deferred IO FB
+
+ Fixes kernel BUG at lib/radix-tree.c:473.
+
+ Previously the handler was incidentally provided by tmpfs but this was
+ removed with:
+
+ commit 14fcc23fdc78e9d32372553ccf21758a9bd56fa1
+ Author: Hugh Dickins <hugh at veritas.com>
+ Date: Mon Jul 28 15:46:19 2008 -0700
+
+ tmpfs: fix kernel BUG in shmem_delete_inode
+
+ relying on this behaviour was incorrect in any case and the BUG also
+ appeared when the device node was on an ext3 filesystem.
+
+ v2: override a_ops at open() time rather than mmap() time to minimise
+ races per AKPM's concerns.
+
+ Signed-off-by: Ian Campbell <ijc at hellion.org.uk>
+ Cc: Jaya Kumar <jayakumar.lkml at gmail.com>
+ Cc: Nick Piggin <npiggin at suse.de>
+ Cc: Peter Zijlstra <a.p.zijlstra at chello.nl>
+ Cc: Hugh Dickins <hugh at veritas.com>
+ Cc: Johannes Weiner <hannes at saeurebad.de>
+ Cc: Jeremy Fitzhardinge <jeremy at goop.org>
+ Cc: Kel Modderman <kel at otaku42.de>
+ Cc: Markus Armbruster <armbru at redhat.com>
+ Cc: Krzysztof Helt <krzysztof.h1 at poczta.fm>
+ Cc: <stable at kernel.org> [14fcc23fd is in 2.6.25.14 and 2.6.26.1]
+ Signed-off-by: Andrew Morton <akpm at linux-foundation.org>
+ Signed-off-by: Linus Torvalds <torvalds at linux-foundation.org>
+
+diff --git a/drivers/video/fb_defio.c b/drivers/video/fb_defio.c
+index 59df132..4835bdc 100644
+--- a/drivers/video/fb_defio.c
++++ b/drivers/video/fb_defio.c
+@@ -114,6 +114,17 @@ static struct vm_operations_struct fb_deferred_io_vm_ops = {
+ .page_mkwrite = fb_deferred_io_mkwrite,
+ };
+
++static int fb_deferred_io_set_page_dirty(struct page *page)
++{
++ if (!PageDirty(page))
++ SetPageDirty(page);
++ return 0;
++}
++
++static const struct address_space_operations fb_deferred_io_aops = {
++ .set_page_dirty = fb_deferred_io_set_page_dirty,
++};
++
+ static int fb_deferred_io_mmap(struct fb_info *info, struct vm_area_struct *vma)
+ {
+ vma->vm_ops = &fb_deferred_io_vm_ops;
+@@ -163,6 +174,14 @@ void fb_deferred_io_init(struct fb_info *info)
+ }
+ EXPORT_SYMBOL_GPL(fb_deferred_io_init);
+
++void fb_deferred_io_open(struct fb_info *info,
++ struct inode *inode,
++ struct file *file)
++{
++ file->f_mapping->a_ops = &fb_deferred_io_aops;
++}
++EXPORT_SYMBOL_GPL(fb_deferred_io_open);
++
+ void fb_deferred_io_cleanup(struct fb_info *info)
+ {
+ void *screen_base = (void __force *) info->screen_base;
+diff --git a/drivers/video/fbmem.c b/drivers/video/fbmem.c
+index 6b48780..98843c2 100644
+--- a/drivers/video/fbmem.c
++++ b/drivers/video/fbmem.c
+@@ -1340,6 +1340,10 @@ fb_open(struct inode *inode, struct file *file)
+ if (res)
+ module_put(info->fbops->owner);
+ }
++#ifdef CONFIG_FB_DEFERRED_IO
++ if (info->fbdefio)
++ fb_deferred_io_open(info, inode, file);
++#endif
+ return res;
+ }
+
+diff --git a/include/linux/fb.h b/include/linux/fb.h
+index 3b8870e..531ccd5 100644
+--- a/include/linux/fb.h
++++ b/include/linux/fb.h
+@@ -976,6 +976,9 @@ static inline void __fb_pad_aligned_buffer(u8 *dst, u32 d_pitch,
+
+ /* drivers/video/fb_defio.c */
+ extern void fb_deferred_io_init(struct fb_info *info);
++extern void fb_deferred_io_open(struct fb_info *info,
++ struct inode *inode,
++ struct file *file);
+ extern void fb_deferred_io_cleanup(struct fb_info *info);
+ extern int fb_deferred_io_fsync(struct file *file, struct dentry *dentry,
+ int datasync);
Modified: dists/sid/linux-2.6/debian/patches/series/4
==============================================================================
--- dists/sid/linux-2.6/debian/patches/series/4 (original)
+++ dists/sid/linux-2.6/debian/patches/series/4 Fri Aug 22 18:20:01 2008
@@ -3,3 +3,4 @@
+ bugfix/all/stable/2.6.26.3.patch
+ bugfix/delay-sched_clock.patch
+ bugfix/ia64-cpu0-early-access-per-cpu-vars.patch
++ bugfix/all/fbdefio-add-set_page_dirty-handler-to-deferred-io-fb.patch
More information about the Kernel-svn-changes
mailing list