]> git.ipfire.org Git - thirdparty/kernel/stable-queue.git/commitdiff
start .33 queue
authorGreg Kroah-Hartman <gregkh@suse.de>
Wed, 12 May 2010 23:20:08 +0000 (16:20 -0700)
committerGreg Kroah-Hartman <gregkh@suse.de>
Wed, 12 May 2010 23:20:08 +0000 (16:20 -0700)
13 files changed:
queue-2.6.33/acpi-sleep-eliminate-duplicate-entries-in-acpisleep_dmi_table.patch [new file with mode: 0644]
queue-2.6.33/alsa-hda-fix-dg45id-spdif-output.patch [new file with mode: 0644]
queue-2.6.33/alsa-revert-alsa-hda-realtek-quirk-for-d945gclf2-mainboard.patch [new file with mode: 0644]
queue-2.6.33/dma-mapping-fix-dma_sync_single_range_.patch [new file with mode: 0644]
queue-2.6.33/fbdev-bfin-t350mcqb-fb-fix-fbmem-allocation-with-blanking-lines.patch [new file with mode: 0644]
queue-2.6.33/hp_accel-fix-race-in-device-removal.patch [new file with mode: 0644]
queue-2.6.33/hugetlbfs-kill-applications-that-use-map_noreserve-with-sigbus-instead-of-oom-killer.patch [new file with mode: 0644]
queue-2.6.33/ipv4-udp-fix-short-packet-and-bad-checksum-logging.patch [new file with mode: 0644]
queue-2.6.33/mmc-atmel-mci-fix-two-parameters-swapped.patch [new file with mode: 0644]
queue-2.6.33/mmc-atmel-mci-prevent-kernel-oops-while-removing-card.patch [new file with mode: 0644]
queue-2.6.33/mmc-atmel-mci-remove-data-error-interrupt-after-xfer.patch [new file with mode: 0644]
queue-2.6.33/revert-procfs-provide-stack-information-for-threads-and-its-fixup-commits.patch [new file with mode: 0644]
queue-2.6.33/series [new file with mode: 0644]

diff --git a/queue-2.6.33/acpi-sleep-eliminate-duplicate-entries-in-acpisleep_dmi_table.patch b/queue-2.6.33/acpi-sleep-eliminate-duplicate-entries-in-acpisleep_dmi_table.patch
new file mode 100644 (file)
index 0000000..b45c57b
--- /dev/null
@@ -0,0 +1,126 @@
+From 7d6fb7bd1919517937ec390f6ca2d7bcf4f89fb6 Mon Sep 17 00:00:00 2001
+From: Alex Chiang <achiang@canonical.com>
+Date: Tue, 11 May 2010 10:21:38 -0600
+Subject: ACPI: sleep: eliminate duplicate entries in acpisleep_dmi_table[]
+
+From: Alex Chiang <achiang@canonical.com>
+
+commit 7d6fb7bd1919517937ec390f6ca2d7bcf4f89fb6 upstream.
+
+Duplicate entries ended up acpisleep_dmi_table[] by accident.
+They don't hurt functionality, but they are ugly, so let's get
+rid of them.
+
+Signed-off-by: Alex Chiang <achiang@canonical.com>
+Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
+Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
+
+---
+ drivers/acpi/sleep.c |   90 ---------------------------------------------------
+ 1 file changed, 1 insertion(+), 89 deletions(-)
+
+--- a/drivers/acpi/sleep.c
++++ b/drivers/acpi/sleep.c
+@@ -475,101 +475,13 @@ static struct dmi_system_id __initdata a
+       },
+       {
+       .callback = init_set_sci_en_on_resume,
+-      .ident = "Lenovo ThinkPad X201",
++      .ident = "Lenovo ThinkPad X201[s]",
+       .matches = {
+               DMI_MATCH(DMI_SYS_VENDOR, "LENOVO"),
+               DMI_MATCH(DMI_PRODUCT_VERSION, "ThinkPad X201"),
+               },
+       },
+       {
+-      .callback = init_set_sci_en_on_resume,
+-      .ident = "Lenovo ThinkPad X201",
+-      .matches = {
+-              DMI_MATCH(DMI_SYS_VENDOR, "LENOVO"),
+-              DMI_MATCH(DMI_PRODUCT_VERSION, "ThinkPad X201s"),
+-              },
+-      },
+-      {
+-      .callback = init_set_sci_en_on_resume,
+-      .ident = "Lenovo ThinkPad T410",
+-      .matches = {
+-              DMI_MATCH(DMI_SYS_VENDOR, "LENOVO"),
+-              DMI_MATCH(DMI_PRODUCT_VERSION, "ThinkPad T410"),
+-              },
+-      },
+-      {
+-      .callback = init_set_sci_en_on_resume,
+-      .ident = "Lenovo ThinkPad T510",
+-      .matches = {
+-              DMI_MATCH(DMI_SYS_VENDOR, "LENOVO"),
+-              DMI_MATCH(DMI_PRODUCT_VERSION, "ThinkPad T510"),
+-              },
+-      },
+-      {
+-      .callback = init_set_sci_en_on_resume,
+-      .ident = "Lenovo ThinkPad W510",
+-      .matches = {
+-              DMI_MATCH(DMI_SYS_VENDOR, "LENOVO"),
+-              DMI_MATCH(DMI_PRODUCT_VERSION, "ThinkPad W510"),
+-              },
+-      },
+-      {
+-      .callback = init_set_sci_en_on_resume,
+-      .ident = "Lenovo ThinkPad X201",
+-      .matches = {
+-              DMI_MATCH(DMI_SYS_VENDOR, "LENOVO"),
+-              DMI_MATCH(DMI_PRODUCT_VERSION, "ThinkPad X201"),
+-              },
+-      },
+-      {
+-      .callback = init_set_sci_en_on_resume,
+-      .ident = "Lenovo ThinkPad X201",
+-      .matches = {
+-              DMI_MATCH(DMI_SYS_VENDOR, "LENOVO"),
+-              DMI_MATCH(DMI_PRODUCT_VERSION, "ThinkPad X201s"),
+-              },
+-      },
+-      {
+-      .callback = init_set_sci_en_on_resume,
+-      .ident = "Lenovo ThinkPad T410",
+-      .matches = {
+-              DMI_MATCH(DMI_SYS_VENDOR, "LENOVO"),
+-              DMI_MATCH(DMI_PRODUCT_VERSION, "ThinkPad T410"),
+-              },
+-      },
+-      {
+-      .callback = init_set_sci_en_on_resume,
+-      .ident = "Lenovo ThinkPad T510",
+-      .matches = {
+-              DMI_MATCH(DMI_SYS_VENDOR, "LENOVO"),
+-              DMI_MATCH(DMI_PRODUCT_VERSION, "ThinkPad T510"),
+-              },
+-      },
+-      {
+-      .callback = init_set_sci_en_on_resume,
+-      .ident = "Lenovo ThinkPad W510",
+-      .matches = {
+-              DMI_MATCH(DMI_SYS_VENDOR, "LENOVO"),
+-              DMI_MATCH(DMI_PRODUCT_VERSION, "ThinkPad W510"),
+-              },
+-      },
+-      {
+-      .callback = init_set_sci_en_on_resume,
+-      .ident = "Lenovo ThinkPad X201",
+-      .matches = {
+-              DMI_MATCH(DMI_SYS_VENDOR, "LENOVO"),
+-              DMI_MATCH(DMI_PRODUCT_VERSION, "ThinkPad X201"),
+-              },
+-      },
+-      {
+-      .callback = init_set_sci_en_on_resume,
+-      .ident = "Lenovo ThinkPad X201",
+-      .matches = {
+-              DMI_MATCH(DMI_SYS_VENDOR, "LENOVO"),
+-              DMI_MATCH(DMI_PRODUCT_VERSION, "ThinkPad X201s"),
+-              },
+-      },
+-      {
+       .callback = init_old_suspend_ordering,
+       .ident = "Panasonic CF51-2L",
+       .matches = {
diff --git a/queue-2.6.33/alsa-hda-fix-dg45id-spdif-output.patch b/queue-2.6.33/alsa-hda-fix-dg45id-spdif-output.patch
new file mode 100644 (file)
index 0000000..baf6c6d
--- /dev/null
@@ -0,0 +1,69 @@
+From 4d26f44657915f082806abfe3624aeded4c121fa Mon Sep 17 00:00:00 2001
+From: Wu Fengguang <fengguang.wu@intel.com>
+Date: Fri, 7 May 2010 08:47:54 +0800
+Subject: ALSA: hda - fix DG45ID SPDIF output
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+From: Wu Fengguang <fengguang.wu@intel.com>
+
+commit 4d26f44657915f082806abfe3624aeded4c121fa upstream.
+
+This reverts part of commit 52dc438606d1e, in order to fix a regression:
+broken SPDIF output on Intel DG45FC motherboard (IDT 92HD73E1X5 codec).
+
+       --- DG45FC-IDT-codec-2.6.32  (SPDIF OK)
+       +++ DG45FC-IDT-codec-2.6.33  (SPDIF broken)
+
+        Node 0x22 [Pin Complex] wcaps 0x400301: Stereo Digital
+          Pincap 0x00000010: OUT
+       -  Pin Default 0x40f000f0: [N/A] Other at Ext N/A
+       -    Conn = Unknown, Color = Unknown
+       -    DefAssociation = 0xf, Sequence = 0x0
+       -  Pin-ctls: 0x00:
+       +  Pin Default 0x014510a0: [Jack] SPDIF Out at Ext Rear
+       +    Conn = Optical, Color = Black
+       +    DefAssociation = 0xa, Sequence = 0x0
+       +  Pin-ctls: 0x40: OUT
+          Connection: 3
+             0x25* 0x20 0x21
+        Node 0x23 [Pin Complex] wcaps 0x400301: Stereo Digital
+          Pincap 0x00000010: OUT
+       -  Pin Default 0x01451140: [Jack] SPDIF Out at Ext Rear
+       +  Pin Default 0x074510b0: [Jack] SPDIF Out at Ext Rear Panel
+            Conn = Optical, Color = Black
+       -    DefAssociation = 0x4, Sequence = 0x0
+       -    Misc = NO_PRESENCE
+       -  Pin-ctls: 0x40: OUT
+       +    DefAssociation = 0xb, Sequence = 0x0
+       +  Pin-ctls: 0x00:
+          Connection: 3
+             0x26* 0x20 0x21
+
+Cc: Alexey Fisher <bug-track@fisher-privat.net>
+Tested-by: David Härdeman <david@hardeman.nu>
+Signed-off-by: Wu Fengguang <fengguang.wu@intel.com>
+Signed-off-by: Takashi Iwai <tiwai@suse.de>
+Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
+
+---
+ sound/pci/hda/patch_sigmatel.c |    6 ++----
+ 1 file changed, 2 insertions(+), 4 deletions(-)
+
+--- a/sound/pci/hda/patch_sigmatel.c
++++ b/sound/pci/hda/patch_sigmatel.c
+@@ -1539,11 +1539,9 @@ static unsigned int alienware_m17x_pin_c
+       0x904601b0,
+ };
+-static unsigned int intel_dg45id_pin_configs[14] = {
++static unsigned int intel_dg45id_pin_configs[13] = {
+       0x02214230, 0x02A19240, 0x01013214, 0x01014210,
+-      0x01A19250, 0x01011212, 0x01016211, 0x40f000f0,
+-      0x40f000f0, 0x40f000f0, 0x40f000f0, 0x014510A0,
+-      0x074510B0, 0x40f000f0
++      0x01A19250, 0x01011212, 0x01016211
+ };
+ static unsigned int *stac92hd73xx_brd_tbl[STAC_92HD73XX_MODELS] = {
diff --git a/queue-2.6.33/alsa-revert-alsa-hda-realtek-quirk-for-d945gclf2-mainboard.patch b/queue-2.6.33/alsa-revert-alsa-hda-realtek-quirk-for-d945gclf2-mainboard.patch
new file mode 100644 (file)
index 0000000..93d442b
--- /dev/null
@@ -0,0 +1,35 @@
+From 482c45331519524e4aeaf8a9084a445500822b85 Mon Sep 17 00:00:00 2001
+From: Stefan Lippers-Hollmann <s.l-h@gmx.de>
+Date: Mon, 10 May 2010 17:14:34 +0200
+Subject: ALSA: Revert "ALSA: hda/realtek: quirk for D945GCLF2 mainboard"
+
+From: Stefan Lippers-Hollmann <s.l-h@gmx.de>
+
+commit 482c45331519524e4aeaf8a9084a445500822b85 upstream.
+
+This reverts commit 7aee67466536bbf8bb44a95712c848a61c5a0acd.
+
+As it doesn't seem to be universally valid for all mainboard revisions of
+the D945GCLF2 and breaks snd-hda-intel/ snd-hda-codec-realtek on the Intel
+Corporation "D945GCLF2" (LF94510J.86A.0229.2009.0729.0209) mainboard.
+
+00:1b.0 Audio device [0403]: Intel Corporation N10/ICH 7 Family High Definition Audio Controller [8086:27d8] (rev 01)
+
+Signed-off-by: Stefan Lippers-Hollmann <s.l-h@gmx.de>
+Signed-off-by: Takashi Iwai <tiwai@suse.de>
+Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
+
+---
+ sound/pci/hda/patch_realtek.c |    1 -
+ 1 file changed, 1 deletion(-)
+
+--- a/sound/pci/hda/patch_realtek.c
++++ b/sound/pci/hda/patch_realtek.c
+@@ -17348,7 +17348,6 @@ static struct snd_pci_quirk alc662_cfg_t
+                                       ALC662_3ST_6ch_DIG),
+       SND_PCI_QUIRK_MASK(0x1854, 0xf000, 0x2000, "ASUS H13-200x",
+                          ALC663_ASUS_H13),
+-      SND_PCI_QUIRK(0x8086, 0xd604, "Intel mobo", ALC662_3ST_2ch_DIG),
+       {}
+ };
diff --git a/queue-2.6.33/dma-mapping-fix-dma_sync_single_range_.patch b/queue-2.6.33/dma-mapping-fix-dma_sync_single_range_.patch
new file mode 100644 (file)
index 0000000..a5af3f2
--- /dev/null
@@ -0,0 +1,42 @@
+From f33d7e2d2d113a63772bbc993cdec3b5327f0ef1 Mon Sep 17 00:00:00 2001
+From: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
+Date: Tue, 11 May 2010 14:06:43 -0700
+Subject: dma-mapping: fix dma_sync_single_range_*
+
+From: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
+
+commit f33d7e2d2d113a63772bbc993cdec3b5327f0ef1 upstream.
+
+dma_sync_single_range_for_cpu() and dma_sync_single_range_for_device() use
+a wrong address with a partial synchronization.
+
+Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
+Reviewed-by: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
+Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
+Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
+Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
+
+---
+ include/asm-generic/dma-mapping-common.h |    4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+--- a/include/asm-generic/dma-mapping-common.h
++++ b/include/asm-generic/dma-mapping-common.h
+@@ -131,7 +131,7 @@ static inline void dma_sync_single_range
+               debug_dma_sync_single_range_for_cpu(dev, addr, offset, size, dir);
+       } else
+-              dma_sync_single_for_cpu(dev, addr, size, dir);
++              dma_sync_single_for_cpu(dev, addr + offset, size, dir);
+ }
+ static inline void dma_sync_single_range_for_device(struct device *dev,
+@@ -148,7 +148,7 @@ static inline void dma_sync_single_range
+               debug_dma_sync_single_range_for_device(dev, addr, offset, size, dir);
+       } else
+-              dma_sync_single_for_device(dev, addr, size, dir);
++              dma_sync_single_for_device(dev, addr + offset, size, dir);
+ }
+ static inline void
diff --git a/queue-2.6.33/fbdev-bfin-t350mcqb-fb-fix-fbmem-allocation-with-blanking-lines.patch b/queue-2.6.33/fbdev-bfin-t350mcqb-fb-fix-fbmem-allocation-with-blanking-lines.patch
new file mode 100644 (file)
index 0000000..9634d1c
--- /dev/null
@@ -0,0 +1,61 @@
+From de145b44b95b9d3212a82d1c0f29b09778ef33c5 Mon Sep 17 00:00:00 2001
+From: Michael Hennerich <michael.hennerich@analog.com>
+Date: Tue, 11 May 2010 14:07:00 -0700
+Subject: fbdev: bfin-t350mcqb-fb: fix fbmem allocation with blanking lines
+
+From: Michael Hennerich <michael.hennerich@analog.com>
+
+commit de145b44b95b9d3212a82d1c0f29b09778ef33c5 upstream.
+
+The current allocation does not include the memory required for blanking
+lines.  So avoid memory corruption when multiple devices are using the DMA
+memory near each other.
+
+Signed-off-by: Michael Hennerich <michael.hennerich@analog.com>
+Signed-off-by: Mike Frysinger <vapier@gentoo.org>
+Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
+Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
+Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
+
+---
+ drivers/video/bfin-t350mcqb-fb.c |   15 ++++++++-------
+ 1 file changed, 8 insertions(+), 7 deletions(-)
+
+--- a/drivers/video/bfin-t350mcqb-fb.c
++++ b/drivers/video/bfin-t350mcqb-fb.c
+@@ -515,9 +515,9 @@ static int __devinit bfin_t350mcqb_probe
+       fbinfo->fbops = &bfin_t350mcqb_fb_ops;
+       fbinfo->flags = FBINFO_FLAG_DEFAULT;
+-      info->fb_buffer =
+-          dma_alloc_coherent(NULL, fbinfo->fix.smem_len, &info->dma_handle,
+-                             GFP_KERNEL);
++      info->fb_buffer = dma_alloc_coherent(NULL, fbinfo->fix.smem_len +
++                              ACTIVE_VIDEO_MEM_OFFSET,
++                              &info->dma_handle, GFP_KERNEL);
+       if (NULL == info->fb_buffer) {
+               printk(KERN_ERR DRIVER_NAME
+@@ -587,8 +587,8 @@ out7:
+ out6:
+       fb_dealloc_cmap(&fbinfo->cmap);
+ out4:
+-      dma_free_coherent(NULL, fbinfo->fix.smem_len, info->fb_buffer,
+-                        info->dma_handle);
++      dma_free_coherent(NULL, fbinfo->fix.smem_len + ACTIVE_VIDEO_MEM_OFFSET,
++                       info->fb_buffer, info->dma_handle);
+ out3:
+       framebuffer_release(fbinfo);
+ out2:
+@@ -611,8 +611,9 @@ static int __devexit bfin_t350mcqb_remov
+       free_irq(info->irq, info);
+       if (info->fb_buffer != NULL)
+-              dma_free_coherent(NULL, fbinfo->fix.smem_len, info->fb_buffer,
+-                                info->dma_handle);
++              dma_free_coherent(NULL, fbinfo->fix.smem_len +
++                      ACTIVE_VIDEO_MEM_OFFSET, info->fb_buffer,
++                      info->dma_handle);
+       fb_dealloc_cmap(&fbinfo->cmap);
diff --git a/queue-2.6.33/hp_accel-fix-race-in-device-removal.patch b/queue-2.6.33/hp_accel-fix-race-in-device-removal.patch
new file mode 100644 (file)
index 0000000..3d56cd3
--- /dev/null
@@ -0,0 +1,38 @@
+From 06efbeb4a47b6f865e1c9d175ab9d6e90b69ae9e Mon Sep 17 00:00:00 2001
+From: Oliver Neukum <oneukum@suse.de>
+Date: Tue, 11 May 2010 14:07:03 -0700
+Subject: hp_accel: fix race in device removal
+
+From: Oliver Neukum <oneukum@suse.de>
+
+commit 06efbeb4a47b6f865e1c9d175ab9d6e90b69ae9e upstream.
+
+The work queue has to be flushed after the device has been made
+inaccessible.  The patch closes a window during which a work queue might
+remain active after the device is removed and would then lead to ACPI
+calls with undefined behavior.
+
+Signed-off-by: Oliver Neukum <oneukum@suse.de>
+Acked-by: Eric Piel <eric.piel@tremplin-utc.net>
+Acked-by: Pavel Machek <pavel@ucw.cz>
+Cc: Pavel Herrmann <morpheus.ibis@gmail.com>
+Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
+Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
+Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
+
+---
+ drivers/hwmon/hp_accel.c |    2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+--- a/drivers/hwmon/hp_accel.c
++++ b/drivers/hwmon/hp_accel.c
+@@ -324,8 +324,8 @@ static int lis3lv02d_remove(struct acpi_
+       lis3lv02d_joystick_disable();
+       lis3lv02d_poweroff(&lis3_dev);
+-      flush_work(&hpled_led.work);
+       led_classdev_unregister(&hpled_led.led_classdev);
++      flush_work(&hpled_led.work);
+       return lis3lv02d_remove_fs(&lis3_dev);
+ }
diff --git a/queue-2.6.33/hugetlbfs-kill-applications-that-use-map_noreserve-with-sigbus-instead-of-oom-killer.patch b/queue-2.6.33/hugetlbfs-kill-applications-that-use-map_noreserve-with-sigbus-instead-of-oom-killer.patch
new file mode 100644 (file)
index 0000000..06ac165
--- /dev/null
@@ -0,0 +1,61 @@
+From 4a6018f7f4f1075c1a5403b5ec0ee7262187b86c Mon Sep 17 00:00:00 2001
+From: Mel Gorman <mel@csn.ul.ie>
+Date: Tue, 11 May 2010 14:06:53 -0700
+Subject: hugetlbfs: kill applications that use MAP_NORESERVE with SIGBUS instead of OOM-killer
+
+From: Mel Gorman <mel@csn.ul.ie>
+
+commit 4a6018f7f4f1075c1a5403b5ec0ee7262187b86c upstream.
+
+Ordinarily, application using hugetlbfs will create mappings with
+reserves.  For shared mappings, these pages are reserved before mmap()
+returns success and for private mappings, the caller process is guaranteed
+and a child process that cannot get the pages gets killed with sigbus.
+
+An application that uses MAP_NORESERVE gets no reservations and mmap()
+will always succeed at the risk the page will not be available at fault
+time.  This might be used for example on very large sparse mappings where
+the developer is confident the necessary huge pages exist to satisfy all
+faults even though the whole mapping cannot be backed by huge pages.
+Unfortunately, if an allocation does fail, VM_FAULT_OOM is returned to the
+fault handler which proceeds to trigger the OOM-killer.  This is
+unhelpful.
+
+Even without hugetlbfs mounted, a user using mmap() can trivially trigger
+the OOM-killer because VM_FAULT_OOM is returned (will provide example
+program if desired - it's a whopping 24 lines long).  It could be
+considered a DOS available to an unprivileged user.
+
+This patch alters hugetlbfs to kill a process that uses MAP_NORESERVE
+where huge pages were not available with SIGBUS instead of triggering the
+OOM killer.
+
+This change affects hugetlb_cow() as well.  I feel there is a failure case
+in there, but I didn't create one.  It would need a fairly specific target
+in terms of the faulting application and the hugepage pool size.  The
+hugetlb_no_page() path is much easier to hit but both might as well be
+closed.
+
+Signed-off-by: Mel Gorman <mel@csn.ul.ie>
+Cc: Lee Schermerhorn <lee.schermerhorn@hp.com>
+Cc: David Rientjes <rientjes@google.com>
+Cc: Andi Kleen <andi@firstfloor.org>
+Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
+Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
+Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
+
+---
+ mm/hugetlb.c |    2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+--- a/mm/hugetlb.c
++++ b/mm/hugetlb.c
+@@ -1039,7 +1039,7 @@ static struct page *alloc_huge_page(stru
+               page = alloc_buddy_huge_page(h, vma, addr);
+               if (!page) {
+                       hugetlb_put_quota(inode->i_mapping, chg);
+-                      return ERR_PTR(-VM_FAULT_OOM);
++                      return ERR_PTR(-VM_FAULT_SIGBUS);
+               }
+       }
diff --git a/queue-2.6.33/ipv4-udp-fix-short-packet-and-bad-checksum-logging.patch b/queue-2.6.33/ipv4-udp-fix-short-packet-and-bad-checksum-logging.patch
new file mode 100644 (file)
index 0000000..4adc7df
--- /dev/null
@@ -0,0 +1,54 @@
+From ccc2d97cb7c798e785c9f198de243e2b59f7073b Mon Sep 17 00:00:00 2001
+From: Bjørn Mork <bjorn@mork.no>
+Date: Thu, 6 May 2010 03:44:34 +0000
+Subject: ipv4: udp: fix short packet and bad checksum logging
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+From: Bjørn Mork <bjorn@mork.no>
+
+commit ccc2d97cb7c798e785c9f198de243e2b59f7073b upstream.
+
+commit 2783ef23 moved the initialisation of saddr and daddr after
+pskb_may_pull() to avoid a potential data corruption.  Unfortunately
+also placing it after the short packet and bad checksum error paths,
+where these variables are used for logging.  The result is bogus
+output like
+
+[92238.389505] UDP: short packet: From 2.0.0.0:65535 23715/178 to 0.0.0.0:65535
+
+Moving the saddr and daddr initialisation above the error paths, while still
+keeping it after the pskb_may_pull() to keep the fix from commit 2783ef23.
+
+Signed-off-by: Bjørn Mork <bjorn@mork.no>
+Acked-by: Eric Dumazet <eric.dumazet@gmail.com>
+Signed-off-by: David S. Miller <davem@davemloft.net>
+Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
+
+---
+ net/ipv4/udp.c |    6 +++---
+ 1 file changed, 3 insertions(+), 3 deletions(-)
+
+--- a/net/ipv4/udp.c
++++ b/net/ipv4/udp.c
+@@ -1527,6 +1527,9 @@ int __udp4_lib_rcv(struct sk_buff *skb,
+       uh   = udp_hdr(skb);
+       ulen = ntohs(uh->len);
++      saddr = ip_hdr(skb)->saddr;
++      daddr = ip_hdr(skb)->daddr;
++
+       if (ulen > skb->len)
+               goto short_packet;
+@@ -1540,9 +1543,6 @@ int __udp4_lib_rcv(struct sk_buff *skb,
+       if (udp4_csum_init(skb, uh, proto))
+               goto csum_error;
+-      saddr = ip_hdr(skb)->saddr;
+-      daddr = ip_hdr(skb)->daddr;
+-
+       if (rt->rt_flags & (RTCF_BROADCAST|RTCF_MULTICAST))
+               return __udp4_lib_mcast_deliver(net, skb, uh,
+                               saddr, daddr, udptable);
diff --git a/queue-2.6.33/mmc-atmel-mci-fix-two-parameters-swapped.patch b/queue-2.6.33/mmc-atmel-mci-fix-two-parameters-swapped.patch
new file mode 100644 (file)
index 0000000..8e7c85a
--- /dev/null
@@ -0,0 +1,41 @@
+From ebb1fea9b3adf25d7e2f643c614163af4f93a17f Mon Sep 17 00:00:00 2001
+From: Nicolas Ferre <nicolas.ferre@atmel.com>
+Date: Tue, 11 May 2010 14:06:48 -0700
+Subject: mmc: atmel-mci: fix two parameters swapped
+
+From: Nicolas Ferre <nicolas.ferre@atmel.com>
+
+commit ebb1fea9b3adf25d7e2f643c614163af4f93a17f upstream.
+
+Two parameters were swapped in the calls to atmci_init_slot().
+
+Signed-off-by: Nicolas Ferre <nicolas.ferre@atmel.com>
+Reported-by: Anders Grahn <anders.grahn@hd-wireless.se>
+Cc: Haavard Skinnemoen <hskinnemoen@atmel.com>
+Cc: <linux-mmc@vger.kernel.org>
+Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
+Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
+Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
+
+---
+ drivers/mmc/host/atmel-mci.c |    4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+--- a/drivers/mmc/host/atmel-mci.c
++++ b/drivers/mmc/host/atmel-mci.c
+@@ -1750,13 +1750,13 @@ static int __init atmci_probe(struct pla
+       ret = -ENODEV;
+       if (pdata->slot[0].bus_width) {
+               ret = atmci_init_slot(host, &pdata->slot[0],
+-                              MCI_SDCSEL_SLOT_A, 0);
++                              0, MCI_SDCSEL_SLOT_A);
+               if (!ret)
+                       nr_slots++;
+       }
+       if (pdata->slot[1].bus_width) {
+               ret = atmci_init_slot(host, &pdata->slot[1],
+-                              MCI_SDCSEL_SLOT_B, 1);
++                              1, MCI_SDCSEL_SLOT_B);
+               if (!ret)
+                       nr_slots++;
+       }
diff --git a/queue-2.6.33/mmc-atmel-mci-prevent-kernel-oops-while-removing-card.patch b/queue-2.6.33/mmc-atmel-mci-prevent-kernel-oops-while-removing-card.patch
new file mode 100644 (file)
index 0000000..38fd511
--- /dev/null
@@ -0,0 +1,51 @@
+From 009a891b22395fc86e5f34057d79fffee4509ab5 Mon Sep 17 00:00:00 2001
+From: Nicolas Ferre <nicolas.ferre@atmel.com>
+Date: Tue, 11 May 2010 14:06:49 -0700
+Subject: mmc: atmel-mci: prevent kernel oops while removing card
+
+From: Nicolas Ferre <nicolas.ferre@atmel.com>
+
+commit 009a891b22395fc86e5f34057d79fffee4509ab5 upstream.
+
+The removing of an SD card in certain circumstances can lead to a kernel
+oops if we do not make sure that the "data" field of the host structure is
+valid.  This patch adds a test in atmci_dma_cleanup() function and also
+calls atmci_stop_dma() before throwing away the reference to data.
+
+Signed-off-by: Nicolas Ferre <nicolas.ferre@atmel.com>
+Cc: Haavard Skinnemoen <hskinnemoen@atmel.com>
+Cc: <linux-mmc@vger.kernel.org>
+Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
+Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
+Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
+
+---
+ drivers/mmc/host/atmel-mci.c |    9 +++++----
+ 1 file changed, 5 insertions(+), 4 deletions(-)
+
+--- a/drivers/mmc/host/atmel-mci.c
++++ b/drivers/mmc/host/atmel-mci.c
+@@ -568,9 +568,10 @@ static void atmci_dma_cleanup(struct atm
+ {
+       struct mmc_data                 *data = host->data;
+-      dma_unmap_sg(&host->pdev->dev, data->sg, data->sg_len,
+-                   ((data->flags & MMC_DATA_WRITE)
+-                    ? DMA_TO_DEVICE : DMA_FROM_DEVICE));
++      if (data)
++              dma_unmap_sg(&host->pdev->dev, data->sg, data->sg_len,
++                           ((data->flags & MMC_DATA_WRITE)
++                            ? DMA_TO_DEVICE : DMA_FROM_DEVICE));
+ }
+ static void atmci_stop_dma(struct atmel_mci *host)
+@@ -1098,8 +1099,8 @@ static void atmci_command_complete(struc
+                       "command error: status=0x%08x\n", status);
+               if (cmd->data) {
+-                      host->data = NULL;
+                       atmci_stop_dma(host);
++                      host->data = NULL;
+                       mci_writel(host, IDR, MCI_NOTBUSY
+                                       | MCI_TXRDY | MCI_RXRDY
+                                       | ATMCI_DATA_ERROR_FLAGS);
diff --git a/queue-2.6.33/mmc-atmel-mci-remove-data-error-interrupt-after-xfer.patch b/queue-2.6.33/mmc-atmel-mci-remove-data-error-interrupt-after-xfer.patch
new file mode 100644 (file)
index 0000000..35e8033
--- /dev/null
@@ -0,0 +1,34 @@
+From abc2c9fdf636c4335a8d72ac3c5ae152bca44b68 Mon Sep 17 00:00:00 2001
+From: Nicolas Ferre <nicolas.ferre@atmel.com>
+Date: Tue, 11 May 2010 14:06:50 -0700
+Subject: mmc: atmel-mci: remove data error interrupt after xfer
+
+From: Nicolas Ferre <nicolas.ferre@atmel.com>
+
+commit abc2c9fdf636c4335a8d72ac3c5ae152bca44b68 upstream.
+
+Disable data error interrupts while we are actually recording that there
+is not such errors.  This will prevent, in some cases, the warning message
+printed at new request queuing (in atmci_start_request()).
+
+Signed-off-by: Nicolas Ferre <nicolas.ferre@atmel.com>
+Cc: Haavard Skinnemoen <hskinnemoen@atmel.com>
+Cc: <linux-mmc@vger.kernel.org>
+Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
+Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
+Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
+
+---
+ drivers/mmc/host/atmel-mci.c |    1 +
+ 1 file changed, 1 insertion(+)
+
+--- a/drivers/mmc/host/atmel-mci.c
++++ b/drivers/mmc/host/atmel-mci.c
+@@ -1293,6 +1293,7 @@ static void atmci_tasklet_func(unsigned
+                       } else {
+                               data->bytes_xfered = data->blocks * data->blksz;
+                               data->error = 0;
++                              mci_writel(host, IDR, ATMCI_DATA_ERROR_FLAGS);
+                       }
+                       if (!data->stop) {
diff --git a/queue-2.6.33/revert-procfs-provide-stack-information-for-threads-and-its-fixup-commits.patch b/queue-2.6.33/revert-procfs-provide-stack-information-for-threads-and-its-fixup-commits.patch
new file mode 100644 (file)
index 0000000..227fe42
--- /dev/null
@@ -0,0 +1,179 @@
+From 34441427aab4bdb3069a4ffcda69a99357abcb2e Mon Sep 17 00:00:00 2001
+From: Robin Holt <holt@sgi.com>
+Date: Tue, 11 May 2010 14:06:46 -0700
+Subject: revert "procfs: provide stack information for threads" and its fixup commits
+
+From: Robin Holt <holt@sgi.com>
+
+commit 34441427aab4bdb3069a4ffcda69a99357abcb2e upstream.
+
+Originally, commit d899bf7b ("procfs: provide stack information for
+threads") attempted to introduce a new feature for showing where the
+threadstack was located and how many pages are being utilized by the
+stack.
+
+Commit c44972f1 ("procfs: disable per-task stack usage on NOMMU") was
+applied to fix the NO_MMU case.
+
+Commit 89240ba0 ("x86, fs: Fix x86 procfs stack information for threads on
+64-bit") was applied to fix a bug in ia32 executables being loaded.
+
+Commit 9ebd4eba7 ("procfs: fix /proc/<pid>/stat stack pointer for kernel
+threads") was applied to fix a bug which had kernel threads printing a
+userland stack address.
+
+Commit 1306d603f ('proc: partially revert "procfs: provide stack
+information for threads"') was then applied to revert the stack pages
+being used to solve a significant performance regression.
+
+This patch nearly undoes the effect of all these patches.
+
+The reason for reverting these is it provides an unusable value in
+field 28.  For x86_64, a fork will result in the task->stack_start
+value being updated to the current user top of stack and not the stack
+start address.  This unpredictability of the stack_start value makes
+it worthless.  That includes the intended use of showing how much stack
+space a thread has.
+
+Other architectures will get different values.  As an example, ia64
+gets 0.  The do_fork() and copy_process() functions appear to treat the
+stack_start and stack_size parameters as architecture specific.
+
+I only partially reverted c44972f1 ("procfs: disable per-task stack usage
+on NOMMU") .  If I had completely reverted it, I would have had to change
+mm/Makefile only build pagewalk.o when CONFIG_PROC_PAGE_MONITOR is
+configured.  Since I could not test the builds without significant effort,
+I decided to not change mm/Makefile.
+
+I only partially reverted 89240ba0 ("x86, fs: Fix x86 procfs stack
+information for threads on 64-bit") .  I left the KSTK_ESP() change in
+place as that seemed worthwhile.
+
+Signed-off-by: Robin Holt <holt@sgi.com>
+Cc: Stefani Seibold <stefani@seibold.net>
+Cc: KOSAKI Motohiro <kosaki.motohiro@jp.fujitsu.com>
+Cc: Michal Simek <monstr@monstr.eu>
+Cc: Ingo Molnar <mingo@elte.hu>
+Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
+Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
+Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
+
+---
+ Documentation/filesystems/proc.txt |    3 +--
+ fs/compat.c                        |    2 --
+ fs/exec.c                          |    2 --
+ fs/proc/array.c                    |    3 +--
+ fs/proc/task_mmu.c                 |   19 -------------------
+ include/linux/sched.h              |    1 -
+ kernel/fork.c                      |    2 --
+ 7 files changed, 2 insertions(+), 30 deletions(-)
+
+--- a/Documentation/filesystems/proc.txt
++++ b/Documentation/filesystems/proc.txt
+@@ -308,7 +308,7 @@ address           perms offset  dev   in
+ 08049000-0804a000 rw-p 00001000 03:00 8312       /opt/test
+ 0804a000-0806b000 rw-p 00000000 00:00 0          [heap]
+ a7cb1000-a7cb2000 ---p 00000000 00:00 0
+-a7cb2000-a7eb2000 rw-p 00000000 00:00 0          [threadstack:001ff4b4]
++a7cb2000-a7eb2000 rw-p 00000000 00:00 0
+ a7eb2000-a7eb3000 ---p 00000000 00:00 0
+ a7eb3000-a7ed5000 rw-p 00000000 00:00 0
+ a7ed5000-a8008000 r-xp 00000000 03:00 4222       /lib/libc.so.6
+@@ -344,7 +344,6 @@ is not associated with a file:
+  [stack]                  = the stack of the main process
+  [vdso]                   = the "virtual dynamic shared object",
+                             the kernel system call handler
+- [threadstack:xxxxxxxx]   = the stack of the thread, xxxxxxxx is the stack size
+  or if empty, the mapping is anonymous.
+--- a/fs/compat.c
++++ b/fs/compat.c
+@@ -1530,8 +1530,6 @@ int compat_do_execve(char * filename,
+       if (retval < 0)
+               goto out;
+-      current->stack_start = current->mm->start_stack;
+-
+       /* execve succeeded */
+       current->fs->in_exec = 0;
+       current->in_execve = 0;
+--- a/fs/exec.c
++++ b/fs/exec.c
+@@ -1386,8 +1386,6 @@ int do_execve(char * filename,
+       if (retval < 0)
+               goto out;
+-      current->stack_start = current->mm->start_stack;
+-
+       /* execve succeeded */
+       current->fs->in_exec = 0;
+       current->in_execve = 0;
+--- a/fs/proc/array.c
++++ b/fs/proc/array.c
+@@ -82,7 +82,6 @@
+ #include <linux/pid_namespace.h>
+ #include <linux/ptrace.h>
+ #include <linux/tracehook.h>
+-#include <linux/swapops.h>
+ #include <asm/pgtable.h>
+ #include <asm/processor.h>
+@@ -494,7 +493,7 @@ static int do_task_stat(struct seq_file
+               rsslim,
+               mm ? mm->start_code : 0,
+               mm ? mm->end_code : 0,
+-              (permitted && mm) ? task->stack_start : 0,
++              (permitted && mm) ? mm->start_stack : 0,
+               esp,
+               eip,
+               /* The signal information here is obsolete.
+--- a/fs/proc/task_mmu.c
++++ b/fs/proc/task_mmu.c
+@@ -243,25 +243,6 @@ static void show_map_vma(struct seq_file
+                               } else if (vma->vm_start <= mm->start_stack &&
+                                          vma->vm_end >= mm->start_stack) {
+                                       name = "[stack]";
+-                              } else {
+-                                      unsigned long stack_start;
+-                                      struct proc_maps_private *pmp;
+-
+-                                      pmp = m->private;
+-                                      stack_start = pmp->task->stack_start;
+-
+-                                      if (vma->vm_start <= stack_start &&
+-                                          vma->vm_end >= stack_start) {
+-                                              pad_len_spaces(m, len);
+-                                              seq_printf(m,
+-                                               "[threadstack:%08lx]",
+-#ifdef CONFIG_STACK_GROWSUP
+-                                               vma->vm_end - stack_start
+-#else
+-                                               stack_start - vma->vm_start
+-#endif
+-                                              );
+-                                      }
+                               }
+                       } else {
+                               name = "[vdso]";
+--- a/include/linux/sched.h
++++ b/include/linux/sched.h
+@@ -1560,7 +1560,6 @@ struct task_struct {
+       /* bitmask of trace recursion */
+       unsigned long trace_recursion;
+ #endif /* CONFIG_TRACING */
+-      unsigned long stack_start;
+ #ifdef CONFIG_CGROUP_MEM_RES_CTLR /* memcg uses this to do batch job */
+       struct memcg_batch_info {
+               int do_batch;   /* incremented when batch uncharge started */
+--- a/kernel/fork.c
++++ b/kernel/fork.c
+@@ -1134,8 +1134,6 @@ static struct task_struct *copy_process(
+       p->bts = NULL;
+-      p->stack_start = stack_start;
+-
+       /* Perform scheduler related setup. Assign this task to a CPU. */
+       sched_fork(p, clone_flags);
diff --git a/queue-2.6.33/series b/queue-2.6.33/series
new file mode 100644 (file)
index 0000000..39b0c4a
--- /dev/null
@@ -0,0 +1,12 @@
+ipv4-udp-fix-short-packet-and-bad-checksum-logging.patch
+hp_accel-fix-race-in-device-removal.patch
+fbdev-bfin-t350mcqb-fb-fix-fbmem-allocation-with-blanking-lines.patch
+hugetlbfs-kill-applications-that-use-map_noreserve-with-sigbus-instead-of-oom-killer.patch
+dma-mapping-fix-dma_sync_single_range_.patch
+alsa-revert-alsa-hda-realtek-quirk-for-d945gclf2-mainboard.patch
+revert-procfs-provide-stack-information-for-threads-and-its-fixup-commits.patch
+alsa-hda-fix-dg45id-spdif-output.patch
+acpi-sleep-eliminate-duplicate-entries-in-acpisleep_dmi_table.patch
+mmc-atmel-mci-fix-two-parameters-swapped.patch
+mmc-atmel-mci-prevent-kernel-oops-while-removing-card.patch
+mmc-atmel-mci-remove-data-error-interrupt-after-xfer.patch