--- /dev/null
+From fba4e087361605d1eed63343bb08811f097c83ee Mon Sep 17 00:00:00 2001
+From: Igor Murzov <e-mail@date.by>
+Date: Sat, 13 Oct 2012 04:41:25 +0400
+Subject: ACPI video: Ignore errors after _DOD evaluation.
+
+From: Igor Murzov <e-mail@date.by>
+
+commit fba4e087361605d1eed63343bb08811f097c83ee upstream.
+
+There are systems where video module known to work fine regardless
+of broken _DOD and ignoring returned value here doesn't cause
+any issues later. This should fix brightness controls on some laptops.
+
+Bugzilla: https://bugzilla.kernel.org/show_bug.cgi?id=47861
+
+Signed-off-by: Igor Murzov <e-mail@date.by>
+Reviewed-by: Sergey V <sftp.mtuci@gmail.com>
+Signed-off-by: Zhang Rui <rui.zhang@intel.com>
+Signed-off-by: Abdallah Chatila <abdallah.chatila@ericsson.com>
+
+---
+ drivers/acpi/video.c | 11 +++++++----
+ 1 file changed, 7 insertions(+), 4 deletions(-)
+
+--- a/drivers/acpi/video.c
++++ b/drivers/acpi/video.c
+@@ -1345,12 +1345,15 @@ static int
+ acpi_video_bus_get_devices(struct acpi_video_bus *video,
+ struct acpi_device *device)
+ {
+- int status;
++ int status = 0;
+ struct acpi_device *dev;
+
+- status = acpi_video_device_enumerate(video);
+- if (status)
+- return status;
++ /*
++ * There are systems where video module known to work fine regardless
++ * of broken _DOD and ignoring returned value here doesn't cause
++ * any issues later.
++ */
++ acpi_video_device_enumerate(video);
+
+ list_for_each_entry(dev, &device->children, node) {
+
--- /dev/null
+From 06db49e68ae70cf16819b85a14057acb2820776a Mon Sep 17 00:00:00 2001
+From: Theodore Ts'o <tytso@mit.edu>
+Date: Wed, 10 Oct 2012 01:06:58 -0400
+Subject: ext4: fix metadata checksum calculation for the superblock
+
+From: Theodore Ts'o <tytso@mit.edu>
+
+commit 06db49e68ae70cf16819b85a14057acb2820776a upstream.
+
+The function ext4_handle_dirty_super() was calculating the superblock
+on the wrong block data. As a result, when the superblock is modified
+while it is mounted (most commonly, when inodes are added or removed
+from the orphan list), the superblock checksum would be wrong. We
+didn't notice because the superblock *was* being correctly calculated
+in ext4_commit_super(), and this would get called when the file system
+was unmounted. So the problem only became obvious if the system
+crashed while the file system was mounted.
+
+Fix this by removing the poorly designed function signature for
+ext4_superblock_csum_set(); if it only took a single argument, the
+pointer to a struct superblock, the ambiguity which caused this
+mistake would have been impossible.
+
+Reported-by: George Spelvin <linux@horizon.com>
+Signed-off-by: "Theodore Ts'o" <tytso@mit.edu>
+Tested-by: George Spelvin <linux@horizon.com>
+
+---
+ fs/ext4/ext4.h | 3 +--
+ fs/ext4/ext4_jbd2.c | 8 ++------
+ fs/ext4/resize.c | 2 +-
+ fs/ext4/super.c | 7 ++++---
+ 4 files changed, 8 insertions(+), 12 deletions(-)
+
+--- a/fs/ext4/ext4.h
++++ b/fs/ext4/ext4.h
+@@ -2046,8 +2046,7 @@ extern int ext4_resize_fs(struct super_b
+ extern int ext4_calculate_overhead(struct super_block *sb);
+ extern int ext4_superblock_csum_verify(struct super_block *sb,
+ struct ext4_super_block *es);
+-extern void ext4_superblock_csum_set(struct super_block *sb,
+- struct ext4_super_block *es);
++extern void ext4_superblock_csum_set(struct super_block *sb);
+ extern void *ext4_kvmalloc(size_t size, gfp_t flags);
+ extern void *ext4_kvzalloc(size_t size, gfp_t flags);
+ extern void ext4_kvfree(void *ptr);
+--- a/fs/ext4/ext4_jbd2.c
++++ b/fs/ext4/ext4_jbd2.c
+@@ -143,17 +143,13 @@ int __ext4_handle_dirty_super(const char
+ struct buffer_head *bh = EXT4_SB(sb)->s_sbh;
+ int err = 0;
+
++ ext4_superblock_csum_set(sb);
+ if (ext4_handle_valid(handle)) {
+- ext4_superblock_csum_set(sb,
+- (struct ext4_super_block *)bh->b_data);
+ err = jbd2_journal_dirty_metadata(handle, bh);
+ if (err)
+ ext4_journal_abort_handle(where, line, __func__,
+ bh, handle, err);
+- } else {
+- ext4_superblock_csum_set(sb,
+- (struct ext4_super_block *)bh->b_data);
++ } else
+ mark_buffer_dirty(bh);
+- }
+ return err;
+ }
+--- a/fs/ext4/resize.c
++++ b/fs/ext4/resize.c
+@@ -979,7 +979,7 @@ static void update_backups(struct super_
+ goto exit_err;
+ }
+
+- ext4_superblock_csum_set(sb, (struct ext4_super_block *)data);
++ ext4_superblock_csum_set(sb);
+
+ while ((group = ext4_list_backups(sb, &three, &five, &seven)) < last) {
+ struct buffer_head *bh;
+--- a/fs/ext4/super.c
++++ b/fs/ext4/super.c
+@@ -143,9 +143,10 @@ int ext4_superblock_csum_verify(struct s
+ return es->s_checksum == ext4_superblock_csum(sb, es);
+ }
+
+-void ext4_superblock_csum_set(struct super_block *sb,
+- struct ext4_super_block *es)
++void ext4_superblock_csum_set(struct super_block *sb)
+ {
++ struct ext4_super_block *es = EXT4_SB(sb)->s_es;
++
+ if (!EXT4_HAS_RO_COMPAT_FEATURE(sb,
+ EXT4_FEATURE_RO_COMPAT_METADATA_CSUM))
+ return;
+@@ -4343,7 +4344,7 @@ static int ext4_commit_super(struct supe
+ cpu_to_le32(percpu_counter_sum_positive(
+ &EXT4_SB(sb)->s_freeinodes_counter));
+ BUFFER_TRACE(sbh, "marking dirty");
+- ext4_superblock_csum_set(sb, es);
++ ext4_superblock_csum_set(sb);
+ mark_buffer_dirty(sbh);
+ if (sync) {
+ error = sync_dirty_buffer(sbh);
--- /dev/null
+From a4f743851f74fc3e0cc40c13082e65c24139f481 Mon Sep 17 00:00:00 2001
+From: Felipe Balbi <balbi@ti.com>
+Date: Tue, 16 Oct 2012 17:09:22 +0300
+Subject: Revert "serial: omap: fix software flow control"
+
+From: Felipe Balbi <balbi@ti.com>
+
+commit a4f743851f74fc3e0cc40c13082e65c24139f481 upstream.
+
+This reverts commit 957ee7270d632245b43f6feb0e70d9a5e9ea6cf6
+(serial: omap: fix software flow control).
+
+As Russell has pointed out, that commit isn't fixing
+Software Flow Control at all, and it actually makes
+it even more broken.
+
+It was agreed to revert this commit and use Russell's
+latest UART patches instead.
+
+Signed-off-by: Felipe Balbi <balbi@ti.com>
+Cc: Russell King <linux@arm.linux.org.uk>
+Acked-by: Tony Lindgren <tony@atomide.com>
+Cc: Andreas Bießmann <andreas.devel@googlemail.com>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+
+---
+ arch/arm/plat-omap/include/plat/omap-serial.h | 4 ++--
+ drivers/tty/serial/omap-serial.c | 12 ++++++------
+ 2 files changed, 8 insertions(+), 8 deletions(-)
+
+--- a/arch/arm/plat-omap/include/plat/omap-serial.h
++++ b/arch/arm/plat-omap/include/plat/omap-serial.h
+@@ -42,10 +42,10 @@
+ #define OMAP_UART_WER_MOD_WKUP 0X7F
+
+ /* Enable XON/XOFF flow control on output */
+-#define OMAP_UART_SW_TX 0x8
++#define OMAP_UART_SW_TX 0x04
+
+ /* Enable XON/XOFF flow control on input */
+-#define OMAP_UART_SW_RX 0x2
++#define OMAP_UART_SW_RX 0x04
+
+ #define OMAP_UART_SYSC_RESET 0X07
+ #define OMAP_UART_TCR_TRIG 0X0F
+--- a/drivers/tty/serial/omap-serial.c
++++ b/drivers/tty/serial/omap-serial.c
+@@ -667,19 +667,19 @@ serial_omap_configure_xonxoff
+
+ /*
+ * IXON Flag:
+- * Flow control for OMAP.TX
+- * OMAP.RX should listen for XON/XOFF
++ * Enable XON/XOFF flow control on output.
++ * Transmit XON1, XOFF1
+ */
+ if (termios->c_iflag & IXON)
+- up->efr |= OMAP_UART_SW_RX;
++ up->efr |= OMAP_UART_SW_TX;
+
+ /*
+ * IXOFF Flag:
+- * Flow control for OMAP.RX
+- * OMAP.TX should send XON/XOFF
++ * Enable XON/XOFF flow control on input.
++ * Receiver compares XON1, XOFF1.
+ */
+ if (termios->c_iflag & IXOFF)
+- up->efr |= OMAP_UART_SW_TX;
++ up->efr |= OMAP_UART_SW_RX;
+
+ serial_out(up, UART_EFR, up->efr | UART_EFR_ECB);
+ serial_out(up, UART_LCR, UART_LCR_CONF_MODE_A);
reiserfs-protect-reiserfs_quota_write-with-write-lock.patch
intel-iommu-fix-lookup-in-add-device.patch
selinux-fix-sel_netnode_insert-suspicious-rcu-dereference.patch
+acpi-video-ignore-errors-after-_dod-evaluation.patch
+revert-serial-omap-fix-software-flow-control.patch
+ext4-fix-metadata-checksum-calculation-for-the-superblock.patch