]> git.ipfire.org Git - thirdparty/kernel/stable-queue.git/commitdiff
start 2.6.27.9 review cycle
authorGreg Kroah-Hartman <gregkh@suse.de>
Thu, 11 Dec 2008 19:18:17 +0000 (11:18 -0800)
committerGreg Kroah-Hartman <gregkh@suse.de>
Thu, 11 Dec 2008 19:18:17 +0000 (11:18 -0800)
85 files changed:
review-2.6.27/0001-af_unix-netns-fix-problem-of-return-value.patch [moved from queue-2.6.27/0001-af_unix-netns-fix-problem-of-return-value.patch with 100% similarity]
review-2.6.27/0001-sparc64-Fix-offset-calculation-in-compute_size.patch [moved from queue-2.6.27/0001-sparc64-Fix-offset-calculation-in-compute_size.patch with 100% similarity]
review-2.6.27/0002-cxgb3-Fix-kernel-crash-caused-by-uninitialized-l2t_.patch [moved from queue-2.6.27/0002-cxgb3-Fix-kernel-crash-caused-by-uninitialized-l2t_.patch with 100% similarity]
review-2.6.27/0002-sparc64-Fix-__copy_-to-from-_user_inatomic-defines.patch [moved from queue-2.6.27/0002-sparc64-Fix-__copy_-to-from-_user_inatomic-defines.patch with 100% similarity]
review-2.6.27/0003-niu-Fix-readq-implementation-when-architecture-does.patch [moved from queue-2.6.27/0003-niu-Fix-readq-implementation-when-architecture-does.patch with 100% similarity]
review-2.6.27/0003-sparc64-Fix-PCI-resource-mapping-on-sparc64.patch [moved from queue-2.6.27/0003-sparc64-Fix-PCI-resource-mapping-on-sparc64.patch with 100% similarity]
review-2.6.27/0004-pppol2tp-Add-missing-sock_put-in-pppol2tp_release.patch [moved from queue-2.6.27/0004-pppol2tp-Add-missing-sock_put-in-pppol2tp_release.patch with 100% similarity]
review-2.6.27/0004-sparc64-Fix-bug-in-PTRACE_SETFPREGS64-handling.patch [moved from queue-2.6.27/0004-sparc64-Fix-bug-in-PTRACE_SETFPREGS64-handling.patch with 100% similarity]
review-2.6.27/0005-sparc64-Fix-VIS-emulation-bugs.patch [moved from queue-2.6.27/0005-sparc64-Fix-VIS-emulation-bugs.patch with 100% similarity]
review-2.6.27/0005-udp-multicast-packets-need-to-check-namespace.patch [moved from queue-2.6.27/0005-udp-multicast-packets-need-to-check-namespace.patch with 100% similarity]
review-2.6.27/0006-sparc64-Sync-FPU-state-in-VIS-emulation-handler.patch [moved from queue-2.6.27/0006-sparc64-Sync-FPU-state-in-VIS-emulation-handler.patch with 100% similarity]
review-2.6.27/acpi-delete-osi-dmi-dmesg-spam.patch [moved from queue-2.6.27/acpi-delete-osi-dmi-dmesg-spam.patch with 100% similarity]
review-2.6.27/acpi-suspend-blacklist-boxes-that-require-us-to-set-sci_en-directly-on-resume.patch [moved from queue-2.6.27/acpi-suspend-blacklist-boxes-that-require-us-to-set-sci_en-directly-on-resume.patch with 100% similarity]
review-2.6.27/allow-recursion-in-binfmt_script-and-binfmt_misc.patch [moved from queue-2.6.27/allow-recursion-in-binfmt_script-and-binfmt_misc.patch with 100% similarity]
review-2.6.27/alsa-emu10k1-add-more-invert_shared_spdif-flag-to-audigy-models.patch [moved from queue-2.6.27/alsa-emu10k1-add-more-invert_shared_spdif-flag-to-audigy-models.patch with 100% similarity]
review-2.6.27/alsa-hda-add-a-quirk-for-another-acer-aspire.patch [moved from queue-2.6.27/alsa-hda-add-a-quirk-for-another-acer-aspire.patch with 100% similarity]
review-2.6.27/alsa-hda-add-a-quirk-for-dell-studio-15.patch [moved from queue-2.6.27/alsa-hda-add-a-quirk-for-dell-studio-15.patch with 100% similarity]
review-2.6.27/alsa-hda-add-a-quirk-for-medion-md96630.patch [moved from queue-2.6.27/alsa-hda-add-a-quirk-for-medion-md96630.patch with 100% similarity]
review-2.6.27/alsa-hda-add-alc887-support.patch [moved from queue-2.6.27/alsa-hda-add-alc887-support.patch with 100% similarity]
review-2.6.27/alsa-hda-add-another-hp-model-6730s-for-ad1884a.patch [moved from queue-2.6.27/alsa-hda-add-another-hp-model-6730s-for-ad1884a.patch with 100% similarity]
review-2.6.27/alsa-hda-add-another-hp-model-for-ad1884a.patch [moved from queue-2.6.27/alsa-hda-add-another-hp-model-for-ad1884a.patch with 100% similarity]
review-2.6.27/alsa-hda-add-model-for-toshiba-l305-laptop.patch [moved from queue-2.6.27/alsa-hda-add-model-for-toshiba-l305-laptop.patch with 100% similarity]
review-2.6.27/alsa-hda-add-support-for-ecs-pc-chips-boards-with-sigmatel-codecs.patch [moved from queue-2.6.27/alsa-hda-add-support-for-ecs-pc-chips-boards-with-sigmatel-codecs.patch with 100% similarity]
review-2.6.27/alsa-hda-add-support-of-alc272.patch [moved from queue-2.6.27/alsa-hda-add-support-of-alc272.patch with 100% similarity]
review-2.6.27/alsa-hda-appletv-support.patch [moved from queue-2.6.27/alsa-hda-appletv-support.patch with 100% similarity]
review-2.6.27/alsa-hda-fix-alc269-capture-source.patch [moved from queue-2.6.27/alsa-hda-fix-alc269-capture-source.patch with 100% similarity]
review-2.6.27/alsa-hda-fix-another-alc889a.patch [moved from queue-2.6.27/alsa-hda-fix-another-alc889a.patch with 100% similarity]
review-2.6.27/alsa-hda-fix-sound-on-nec-versa-s9100.patch [moved from queue-2.6.27/alsa-hda-fix-sound-on-nec-versa-s9100.patch with 100% similarity]
review-2.6.27/alsa-hda-fixed-hp_nid-dac-for-dell_m6.patch [moved from queue-2.6.27/alsa-hda-fixed-hp_nid-dac-for-dell_m6.patch with 100% similarity]
review-2.6.27/alsa-hda-hda_proc-fix-printf-format-specifier.patch [moved from queue-2.6.27/alsa-hda-hda_proc-fix-printf-format-specifier.patch with 100% similarity]
review-2.6.27/alsa-hda-make-the-hp-elitebook-8530p-use-ad1884a-model-laptop.patch [moved from queue-2.6.27/alsa-hda-make-the-hp-elitebook-8530p-use-ad1884a-model-laptop.patch with 100% similarity]
review-2.6.27/alsa-hda-mark-dell-studio-1535-quirk.patch [moved from queue-2.6.27/alsa-hda-mark-dell-studio-1535-quirk.patch with 100% similarity]
review-2.6.27/alsa-hda-no-headphone-as-line-out-swich-without-line-outs.patch [moved from queue-2.6.27/alsa-hda-no-headphone-as-line-out-swich-without-line-outs.patch with 100% similarity]
review-2.6.27/alsa-hda-patch_analog-fix-spdif-output-on-ad1989b.patch [moved from queue-2.6.27/alsa-hda-patch_analog-fix-spdif-output-on-ad1989b.patch with 100% similarity]
review-2.6.27/alsa-hda-patch_analog-quirk-for-asus-p5q-premium-pro-boards.patch [moved from queue-2.6.27/alsa-hda-patch_analog-quirk-for-asus-p5q-premium-pro-boards.patch with 100% similarity]
review-2.6.27/alsa-hda-restore-default-pin-configs-for-realtek-codecs.patch [moved from queue-2.6.27/alsa-hda-restore-default-pin-configs-for-realtek-codecs.patch with 100% similarity]
review-2.6.27/atm-cve-2008-5079-duplicate-listen-on-socket-corrupts-the-vcc-table.patch [moved from queue-2.6.27/atm-cve-2008-5079-duplicate-listen-on-socket-corrupts-the-vcc-table.patch with 100% similarity]
review-2.6.27/atv-hid-quirk-for-appletv-ir-receiver.patch [moved from queue-2.6.27/atv-hid-quirk-for-appletv-ir-receiver.patch with 100% similarity]
review-2.6.27/cifs-fix-a-regression-in-cifs-umount-codepath.patch [moved from queue-2.6.27/cifs-fix-a-regression-in-cifs-umount-codepath.patch with 100% similarity]
review-2.6.27/cxgb3-fix-race-in-eeh.patch [moved from queue-2.6.27/cxgb3-fix-race-in-eeh.patch with 100% similarity]
review-2.6.27/cxgb3-remove-duplicate-tests-in-lro.patch [moved from queue-2.6.27/cxgb3-remove-duplicate-tests-in-lro.patch with 100% similarity]
review-2.6.27/edac-fix-enabling-of-polling-cell-module.patch [moved from queue-2.6.27/edac-fix-enabling-of-polling-cell-module.patch with 100% similarity]
review-2.6.27/enforce-a-minimum-sg_io-timeout.patch [moved from queue-2.6.27/enforce-a-minimum-sg_io-timeout.patch with 100% similarity]
review-2.6.27/fix-a-race-condition-in-fasync-handling.patch [moved from queue-2.6.27/fix-a-race-condition-in-fasync-handling.patch with 100% similarity]
review-2.6.27/fix-mapping_writably_mapped.patch [moved from queue-2.6.27/fix-mapping_writably_mapped.patch with 100% similarity]
review-2.6.27/input-i8042-add-blue-fb5601-to-noloop-exception-table.patch [moved from queue-2.6.27/input-i8042-add-blue-fb5601-to-noloop-exception-table.patch with 100% similarity]
review-2.6.27/input-i8042-add-compal-hel80-laptop-to-nomux-blacklist.patch [moved from queue-2.6.27/input-i8042-add-compal-hel80-laptop-to-nomux-blacklist.patch with 100% similarity]
review-2.6.27/input-i8042-add-dell-xps-m1530-to-nomux-list.patch [moved from queue-2.6.27/input-i8042-add-dell-xps-m1530-to-nomux-list.patch with 100% similarity]
review-2.6.27/input-i8042-add-thinkpad-r31-to-nomux-list.patch [moved from queue-2.6.27/input-i8042-add-thinkpad-r31-to-nomux-list.patch with 100% similarity]
review-2.6.27/jbd-fix-error-handling-for-checkpoint-io.patch [moved from queue-2.6.27/jbd-fix-error-handling-for-checkpoint-io.patch with 100% similarity]
review-2.6.27/jbd-test-bh_write_eio-to-detect-errors-on-metadata-buffers.patch [moved from queue-2.6.27/jbd-test-bh_write_eio-to-detect-errors-on-metadata-buffers.patch with 100% similarity]
review-2.6.27/libata-improve-phantom-device-detection.patch [moved from queue-2.6.27/libata-improve-phantom-device-detection.patch with 100% similarity]
review-2.6.27/mbox [new file with mode: 0644]
review-2.6.27/pagemap-fix-32-bit-pagemap-regression.patch [moved from queue-2.6.27/pagemap-fix-32-bit-pagemap-regression.patch with 100% similarity]
review-2.6.27/pci-stop-leaking-slot_name-in-pci_create_slot.patch [moved from queue-2.6.27/pci-stop-leaking-slot_name-in-pci_create_slot.patch with 100% similarity]
review-2.6.27/pcie-aspm-break-out-of-endless-loop-waiting-for-pci-config-bits-to-switch.patch [moved from queue-2.6.27/pcie-aspm-break-out-of-endless-loop-waiting-for-pci-config-bits-to-switch.patch with 100% similarity]
review-2.6.27/pnp-make-the-resource-type-an-unsigned-long.patch [moved from queue-2.6.27/pnp-make-the-resource-type-an-unsigned-long.patch with 100% similarity]
review-2.6.27/powerpc-mpic-don-t-reset-affinity-for-secondary-mpic-on-boot.patch [moved from queue-2.6.27/powerpc-mpic-don-t-reset-affinity-for-secondary-mpic-on-boot.patch with 100% similarity]
review-2.6.27/powerpc-virtex5-fix-virtex5-machine-check-handling.patch [moved from queue-2.6.27/powerpc-virtex5-fix-virtex5-machine-check-handling.patch with 100% similarity]
review-2.6.27/sched-cpu-remove-deadlock-fix.patch [moved from queue-2.6.27/sched-cpu-remove-deadlock-fix.patch with 100% similarity]
review-2.6.27/sched-fix-a-bug-in-sched-domain-degenerate.patch [moved from queue-2.6.27/sched-fix-a-bug-in-sched-domain-degenerate.patch with 100% similarity]
review-2.6.27/series [moved from queue-2.6.27/series with 100% similarity]
review-2.6.27/spi-avoid-spidev-crash-when-device-is-removed.patch [moved from queue-2.6.27/spi-avoid-spidev-crash-when-device-is-removed.patch with 100% similarity]
review-2.6.27/tracehook-exec-double-reporting-fix.patch [moved from queue-2.6.27/tracehook-exec-double-reporting-fix.patch with 100% similarity]
review-2.6.27/uml-boot-broken-due-to-buffer-overrun.patch [moved from queue-2.6.27/uml-boot-broken-due-to-buffer-overrun.patch with 100% similarity]
review-2.6.27/usb-add-nikon-d300-camera-to-unusual_devs.patch [moved from queue-2.6.27/usb-add-nikon-d300-camera-to-unusual_devs.patch with 100% similarity]
review-2.6.27/usb-add-yiso-u893-usb-modem-vendor-and-product-ids-to-option-driver.patch [moved from queue-2.6.27/usb-add-yiso-u893-usb-modem-vendor-and-product-ids-to-option-driver.patch with 100% similarity]
review-2.6.27/usb-add-zte-mf626-usb-gsm-modem-entry.patch [moved from queue-2.6.27/usb-add-zte-mf626-usb-gsm-modem-entry.patch with 100% similarity]
review-2.6.27/usb-option-add-ericsson-f3507g-and-dell-5530.patch [moved from queue-2.6.27/usb-option-add-ericsson-f3507g-and-dell-5530.patch with 100% similarity]
review-2.6.27/usb-option-add-pantech-cards.patch [moved from queue-2.6.27/usb-option-add-pantech-cards.patch with 100% similarity]
review-2.6.27/usb-option-anydata-new-modem-same-id.patch [moved from queue-2.6.27/usb-option-anydata-new-modem-same-id.patch with 100% similarity]
review-2.6.27/usb-option.c-remove-duplicate-device-ids-now-supported-in-hso.c.patch [moved from queue-2.6.27/usb-option.c-remove-duplicate-device-ids-now-supported-in-hso.c.patch with 100% similarity]
review-2.6.27/usb-serial-add-more-onda-device-ids-to-option-driver.patch [moved from queue-2.6.27/usb-serial-add-more-onda-device-ids-to-option-driver.patch with 100% similarity]
review-2.6.27/usb-storage-unusual_devs-entry-for-mio-c520-gps.patch [moved from queue-2.6.27/usb-storage-unusual_devs-entry-for-mio-c520-gps.patch with 100% similarity]
review-2.6.27/usb-storage-update-unusual_devs-entries-for-nokia-5300-and-5310.patch [moved from queue-2.6.27/usb-storage-update-unusual_devs-entries-for-nokia-5300-and-5310.patch with 100% similarity]
review-2.6.27/usb-storage-updates-unusual_devs-entry-for-the-nokia-6300.patch [moved from queue-2.6.27/usb-storage-updates-unusual_devs-entry-for-the-nokia-6300.patch with 100% similarity]
review-2.6.27/usb-support-huawei-data-card-product-ids.patch [moved from queue-2.6.27/usb-support-huawei-data-card-product-ids.patch with 100% similarity]
review-2.6.27/usb-unusual-dev-for-mio-moov-330-gps.patch [moved from queue-2.6.27/usb-unusual-dev-for-mio-moov-330-gps.patch with 100% similarity]
review-2.6.27/usb-unusual-dev-for-the-kyocera-contax-sl300r-t-digital-camera.patch [moved from queue-2.6.27/usb-unusual-dev-for-the-kyocera-contax-sl300r-t-digital-camera.patch with 100% similarity]
review-2.6.27/usb-unusual-devs-patch-for-nokia-7610-supernova.patch [moved from queue-2.6.27/usb-unusual-devs-patch-for-nokia-7610-supernova.patch with 100% similarity]
review-2.6.27/usb-unusual-devs-support-huawei-data-card-product-ids.patch [moved from queue-2.6.27/usb-unusual-devs-support-huawei-data-card-product-ids.patch with 100% similarity]
review-2.6.27/usb-usb-storage-unusual_devs-entry-for-nikon-d2h.patch [moved from queue-2.6.27/usb-usb-storage-unusual_devs-entry-for-nikon-d2h.patch with 100% similarity]
review-2.6.27/x86-hpet-convert-warn_on-to-warn_on_once.patch [moved from queue-2.6.27/x86-hpet-convert-warn_on-to-warn_on_once.patch with 100% similarity]
review-2.6.27/x86-memory-hotplug-remove-wrong-1-in-calling-init_memory_mapping.patch [moved from queue-2.6.27/x86-memory-hotplug-remove-wrong-1-in-calling-init_memory_mapping.patch with 100% similarity]
review-2.6.27/x86-remove-debug-code-from-arch_add_memory.patch [moved from queue-2.6.27/x86-remove-debug-code-from-arch_add_memory.patch with 100% similarity]

diff --git a/review-2.6.27/mbox b/review-2.6.27/mbox
new file mode 100644 (file)
index 0000000..9175cbd
--- /dev/null
@@ -0,0 +1,7990 @@
+From gregkh@mini.kroah.org Thu Dec 11 11:04:33 2008
+Message-Id: <20081211190433.356331682@mini.kroah.org>
+User-Agent: quilt/0.47-1
+Date: Thu, 11 Dec 2008 11:02:02 -0800
+From: Greg KH <gregkh@suse.de>
+To: linux-kernel@vger.kernel.org,
+ stable@kernel.org
+Cc: Justin Forbes <jmforbes@linuxtx.org>,
+ Zwane Mwaikambo <zwane@arm.linux.org.uk>,
+ Theodore Ts'o <tytso@mit.edu>,
+ Randy Dunlap <rdunlap@xenotime.net>,
+ Dave Jones <davej@redhat.com>,
+ Chuck Wolber <chuckw@quantumlinux.com>,
+ Chris Wedgwood <reviews@ml.cw.f00f.org>,
+ Michael Krufky <mkrufky@linuxtv.org>,
+ Chuck Ebbert <cebbert@redhat.com>,
+ Domenico Andreoli <cavokz@gmail.com>,
+ Willy Tarreau <w@1wt.eu>,
+ Rodrigo Rubira Branco <rbranco@la.checkpoint.com>,
+ Jake Edge <jake@lwn.net>,
+ Eugene Teo <eteo@redhat.com>,
+ torvalds@linux-foundation.org,
+ akpm@linux-foundation.org,
+ alan@lxorguk.ukuu.org.uk,
+ Tejun Heo <tj@kernel.org>,
+ Jeff Garzik <jgarzik@redhat.com>
+Subject: [patch 01/83] libata: improve phantom device detection
+References: <20081211190201.612240183@mini.kroah.org>
+Content-Disposition: inline; filename=libata-improve-phantom-device-detection.patch
+Content-Length: 2001
+Lines: 55
+
+2.6.27-stable review patch.  If anyone has any objections, please let us know.
+
+------------------
+
+From: Tejun Heo <tj@kernel.org>
+
+commit 6a6b97d360702b98c02c7fca4c4e088dcf3a2985 upstream.
+
+Currently libata uses four methods to detect device presence.
+
+1. PHY status if available.
+2. TF register R/W test (only promotes presence, never demotes)
+3. device signature after reset
+4. IDENTIFY failure detection in SFF state machine
+
+Combination of the above works well in most cases but recently there
+have been a few reports where a phantom device causes unnecessary
+delay during probe.  In both cases, PHY status wasn't available.  In
+one case, it passed #2 and #3 and failed IDENTIFY with ATA_ERR which
+didn't qualify as #4.  The other failed #2 but as it passed #3 and #4,
+it still caused failure.
+
+In both cases, phantom device reported diagnostic failure, so these
+cases can be safely worked around by considering any !ATA_DRQ IDENTIFY
+failure as NODEV_HINT if diagnostic failure is set.
+
+Signed-off-by: Tejun Heo <tj@kernel.org>
+Signed-off-by: Jeff Garzik <jgarzik@redhat.com>
+Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
+
+---
+ drivers/ata/libata-sff.c |   13 +++++++++++--
+ 1 file changed, 11 insertions(+), 2 deletions(-)
+
+--- a/drivers/ata/libata-sff.c
++++ b/drivers/ata/libata-sff.c
+@@ -1227,10 +1227,19 @@ fsm_start:
+                       /* ATA PIO protocol */
+                       if (unlikely((status & ATA_DRQ) == 0)) {
+                               /* handle BSY=0, DRQ=0 as error */
+-                              if (likely(status & (ATA_ERR | ATA_DF)))
++                              if (likely(status & (ATA_ERR | ATA_DF))) {
+                                       /* device stops HSM for abort/error */
+                                       qc->err_mask |= AC_ERR_DEV;
+-                              else {
++
++                                      /* If diagnostic failed and this is
++                                       * IDENTIFY, it's likely a phantom
++                                       * device.  Mark hint.
++                                       */
++                                      if (qc->dev->horkage &
++                                          ATA_HORKAGE_DIAGNOSTIC)
++                                              qc->err_mask |=
++                                                      AC_ERR_NODEV_HINT;
++                              } else {
+                                       /* HSM violation. Let EH handle this.
+                                        * Phantom devices also trigger this
+                                        * condition.  Mark hint.
+
+
+From gregkh@mini.kroah.org Thu Dec 11 11:04:33 2008
+Message-Id: <20081211190433.542934099@mini.kroah.org>
+User-Agent: quilt/0.47-1
+Date: Thu, 11 Dec 2008 11:02:03 -0800
+From: Greg KH <gregkh@suse.de>
+To: linux-kernel@vger.kernel.org,
+ stable@kernel.org
+Cc: Justin Forbes <jmforbes@linuxtx.org>,
+ Zwane Mwaikambo <zwane@arm.linux.org.uk>,
+ Theodore Ts'o <tytso@mit.edu>,
+ Randy Dunlap <rdunlap@xenotime.net>,
+ Dave Jones <davej@redhat.com>,
+ Chuck Wolber <chuckw@quantumlinux.com>,
+ Chris Wedgwood <reviews@ml.cw.f00f.org>,
+ Michael Krufky <mkrufky@linuxtv.org>,
+ Chuck Ebbert <cebbert@redhat.com>,
+ Domenico Andreoli <cavokz@gmail.com>,
+ Willy Tarreau <w@1wt.eu>,
+ Rodrigo Rubira Branco <rbranco@la.checkpoint.com>,
+ Jake Edge <jake@lwn.net>,
+ Eugene Teo <eteo@redhat.com>,
+ torvalds@linux-foundation.org,
+ akpm@linux-foundation.org,
+ alan@lxorguk.ukuu.org.uk,
+ Jianjun Kong <jianjun@zeuux.org>,
+ "David S. Miller" <davem@davemloft.net>
+Subject: [patch 02/83] af_unix: netns: fix problem of return value
+References: <20081211190201.612240183@mini.kroah.org>
+Content-Disposition: inline; filename=0001-af_unix-netns-fix-problem-of-return-value.patch
+Content-Length: 737
+Lines: 28
+
+2.6.27-stable review patch.  If anyone has any objections, please let us know.
+
+------------------
+
+From: Jianjun Kong <jianjun@zeuux.org>
+
+[ Upstream commit 48dcc33e5e11de0f76b65b113988dbc930d17395 ]
+
+fix problem of return value
+
+net/unix/af_unix.c: unix_net_init()
+when error appears, it should return 'error', not always return 0.
+
+Signed-off-by: Jianjun Kong <jianjun@zeuux.org>
+Signed-off-by: David S. Miller <davem@davemloft.net>
+
+---
+ net/unix/af_unix.c |    2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+--- a/net/unix/af_unix.c
++++ b/net/unix/af_unix.c
+@@ -2230,7 +2230,7 @@ static int unix_net_init(struct net *net
+ #endif
+       error = 0;
+ out:
+-      return 0;
++      return error;
+ }
+ static void unix_net_exit(struct net *net)
+
+
+From gregkh@mini.kroah.org Thu Dec 11 11:04:33 2008
+Message-Id: <20081211190433.716716940@mini.kroah.org>
+User-Agent: quilt/0.47-1
+Date: Thu, 11 Dec 2008 11:02:04 -0800
+From: Greg KH <gregkh@suse.de>
+To: linux-kernel@vger.kernel.org,
+ stable@kernel.org
+Cc: Justin Forbes <jmforbes@linuxtx.org>,
+ Zwane Mwaikambo <zwane@arm.linux.org.uk>,
+ Theodore Ts'o <tytso@mit.edu>,
+ Randy Dunlap <rdunlap@xenotime.net>,
+ Dave Jones <davej@redhat.com>,
+ Chuck Wolber <chuckw@quantumlinux.com>,
+ Chris Wedgwood <reviews@ml.cw.f00f.org>,
+ Michael Krufky <mkrufky@linuxtv.org>,
+ Chuck Ebbert <cebbert@redhat.com>,
+ Domenico Andreoli <cavokz@gmail.com>,
+ Willy Tarreau <w@1wt.eu>,
+ Rodrigo Rubira Branco <rbranco@la.checkpoint.com>,
+ Jake Edge <jake@lwn.net>,
+ Eugene Teo <eteo@redhat.com>,
+ torvalds@linux-foundation.org,
+ akpm@linux-foundation.org,
+ alan@lxorguk.ukuu.org.uk,
+ Roland Dreier <rolandd@cisco.com>,
+ Jeff Garzik <jgarzik@redhat.com>
+Subject: [patch 03/83] cxgb3: Fix kernel crash caused by uninitialized l2t_entry.arpq
+References: <20081211190201.612240183@mini.kroah.org>
+Content-Disposition: inline; filename=0002-cxgb3-Fix-kernel-crash-caused-by-uninitialized-l2t_.patch
+Content-Length: 1327
+Lines: 34
+
+2.6.27-stable review patch.  If anyone has any objections, please let us know.
+
+------------------
+
+From: Roland Dreier <rdreier@cisco.com>
+
+[ Upstream commit 6d329af9967e7ab3f4a3d7f1e8ef87539c3a069f ]
+
+Commit 147e70e6 ("cxgb3: Use SKB list interfaces instead of home-grown
+implementation.") causes a crash in t3_l2t_send_slow() when an iWARP
+connection request is received.  This is because the new l2t_entry.arpq
+skb queue is never initialized, and therefore trying to add an skb to
+it causes a NULL dereference.  With the old code there was no need to
+initialize the queues because the l2t_entry structures were zeroed,
+and the code used NULL to mean empty.
+
+Fix this by adding __skb_queue_head_init() when all the l2t_entry
+structures get allocated.
+
+Signed-off-by: Roland Dreier <rolandd@cisco.com>
+Signed-off-by: Jeff Garzik <jgarzik@redhat.com>
+Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
+
+---
+ drivers/net/cxgb3/l2t.c |    1 +
+ 1 file changed, 1 insertion(+)
+
+--- a/drivers/net/cxgb3/l2t.c
++++ b/drivers/net/cxgb3/l2t.c
+@@ -436,6 +436,7 @@ struct l2t_data *t3_init_l2t(unsigned in
+       for (i = 0; i < l2t_capacity; ++i) {
+               d->l2tab[i].idx = i;
+               d->l2tab[i].state = L2T_STATE_UNUSED;
++              __skb_queue_head_init(&d->l2tab[i].arpq);
+               spin_lock_init(&d->l2tab[i].lock);
+               atomic_set(&d->l2tab[i].refcnt, 0);
+       }
+
+
+From gregkh@mini.kroah.org Thu Dec 11 11:04:34 2008
+Message-Id: <20081211190433.915893301@mini.kroah.org>
+User-Agent: quilt/0.47-1
+Date: Thu, 11 Dec 2008 11:02:05 -0800
+From: Greg KH <gregkh@suse.de>
+To: linux-kernel@vger.kernel.org,
+ stable@kernel.org
+Cc: Justin Forbes <jmforbes@linuxtx.org>,
+ Zwane Mwaikambo <zwane@arm.linux.org.uk>,
+ Theodore Ts'o <tytso@mit.edu>,
+ Randy Dunlap <rdunlap@xenotime.net>,
+ Dave Jones <davej@redhat.com>,
+ Chuck Wolber <chuckw@quantumlinux.com>,
+ Chris Wedgwood <reviews@ml.cw.f00f.org>,
+ Michael Krufky <mkrufky@linuxtv.org>,
+ Chuck Ebbert <cebbert@redhat.com>,
+ Domenico Andreoli <cavokz@gmail.com>,
+ Willy Tarreau <w@1wt.eu>,
+ Rodrigo Rubira Branco <rbranco@la.checkpoint.com>,
+ Jake Edge <jake@lwn.net>,
+ Eugene Teo <eteo@redhat.com>,
+ torvalds@linux-foundation.org,
+ akpm@linux-foundation.org,
+ alan@lxorguk.ukuu.org.uk,
+ "David S. Miller" <davem@davemloft.net>
+Subject: [patch 04/83] niu: Fix readq implementation when architecture does not provide one.
+References: <20081211190201.612240183@mini.kroah.org>
+Content-Disposition: inline; filename=0003-niu-Fix-readq-implementation-when-architecture-does.patch
+Content-Length: 1734
+Lines: 49
+
+2.6.27-stable review patch.  If anyone has any objections, please let us know.
+
+------------------
+
+From: David S. Miller <davem@davemloft.net>
+
+[ Upstream commit e23a59e1ca6d177a57a7791b3629db93ff1d9813 ]
+
+This fixes a TX hang reported by Jesper Dangaard Brouer.
+
+When an architecutre cannot provide a fully functional
+64-bit atomic readq/writeq, the driver must implement
+it's own.  This is because only the driver can say whether
+doing something like using two 32-bit reads to implement
+the full 64-bit read will actually work properly.
+
+In particular one of the issues is whether the top 32-bits
+or the bottom 32-bits of the 64-bit register should be read
+first.  There could be side effects, and in fact that is
+exactly the problem here.
+
+The TX_CS register has counters in the upper 32-bits and
+state bits in the lower 32-bits.  A read clears the state
+bits.
+
+We would read the counter half before the state bit half.
+That first read would clear the state bits, and then the
+driver thinks that no interrupts are pending because the
+interrupt indication state bits are seen clear every time.
+
+Fix this by reading the bottom half before the upper half.
+
+Tested-by: Jesper Dangaard Brouer <jdb@comx.dk>
+Signed-off-by: David S. Miller <davem@davemloft.net>
+Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
+
+---
+ drivers/net/niu.c |    3 +--
+ 1 file changed, 1 insertion(+), 2 deletions(-)
+
+--- a/drivers/net/niu.c
++++ b/drivers/net/niu.c
+@@ -51,8 +51,7 @@ MODULE_VERSION(DRV_MODULE_VERSION);
+ #ifndef readq
+ static u64 readq(void __iomem *reg)
+ {
+-      return (((u64)readl(reg + 0x4UL) << 32) |
+-              (u64)readl(reg));
++      return ((u64) readl(reg)) | (((u64) readl(reg + 4UL)) << 32);
+ }
+ static void writeq(u64 val, void __iomem *reg)
+
+
+From gregkh@mini.kroah.org Thu Dec 11 11:04:34 2008
+Message-Id: <20081211190434.093980111@mini.kroah.org>
+User-Agent: quilt/0.47-1
+Date: Thu, 11 Dec 2008 11:02:06 -0800
+From: Greg KH <gregkh@suse.de>
+To: linux-kernel@vger.kernel.org,
+ stable@kernel.org
+Cc: Justin Forbes <jmforbes@linuxtx.org>,
+ Zwane Mwaikambo <zwane@arm.linux.org.uk>,
+ Theodore Ts'o <tytso@mit.edu>,
+ Randy Dunlap <rdunlap@xenotime.net>,
+ Dave Jones <davej@redhat.com>,
+ Chuck Wolber <chuckw@quantumlinux.com>,
+ Chris Wedgwood <reviews@ml.cw.f00f.org>,
+ Michael Krufky <mkrufky@linuxtv.org>,
+ Chuck Ebbert <cebbert@redhat.com>,
+ Domenico Andreoli <cavokz@gmail.com>,
+ Willy Tarreau <w@1wt.eu>,
+ Rodrigo Rubira Branco <rbranco@la.checkpoint.com>,
+ Jake Edge <jake@lwn.net>,
+ Eugene Teo <eteo@redhat.com>,
+ torvalds@linux-foundation.org,
+ akpm@linux-foundation.org,
+ alan@lxorguk.ukuu.org.uk,
+ Frederic Moulins <frederic.moulins@alsatis.com>,
+ "David S. Miller" <davem@davemloft.net>
+Subject: [patch 05/83] pppol2tp: Add missing sock_put() in pppol2tp_release()
+References: <20081211190201.612240183@mini.kroah.org>
+Content-Disposition: inline; filename=0004-pppol2tp-Add-missing-sock_put-in-pppol2tp_release.patch
+Content-Length: 694
+Lines: 25
+
+2.6.27-stable review patch.  If anyone has any objections, please let us know.
+
+------------------
+
+From: Frédéric Moulins <frederic.moulins@alsatis.com>
+
+[ Upstream commit e6358135147807351db3b7782d3e198a1bba8b62 ]
+
+pppol2tp_sock_to_session() do sock_hold() if the session to release is
+not NULL.
+
+Signed-off-by: Frederic Moulins <frederic.moulins@alsatis.com>
+Signed-off-by: David S. Miller <davem@davemloft.net>
+
+---
+ drivers/net/pppol2tp.c |    1 +
+ 1 file changed, 1 insertion(+)
+
+--- a/drivers/net/pppol2tp.c
++++ b/drivers/net/pppol2tp.c
+@@ -1353,6 +1353,7 @@ static int pppol2tp_release(struct socke
+                       kfree_skb(skb);
+                       sock_put(sk);
+               }
++              sock_put(sk);
+       }
+       release_sock(sk);
+
+
+From gregkh@mini.kroah.org Thu Dec 11 11:04:34 2008
+Message-Id: <20081211190434.268262597@mini.kroah.org>
+User-Agent: quilt/0.47-1
+Date: Thu, 11 Dec 2008 11:02:07 -0800
+From: Greg KH <gregkh@suse.de>
+To: linux-kernel@vger.kernel.org,
+ stable@kernel.org
+Cc: Justin Forbes <jmforbes@linuxtx.org>,
+ Zwane Mwaikambo <zwane@arm.linux.org.uk>,
+ Theodore Ts'o <tytso@mit.edu>,
+ Randy Dunlap <rdunlap@xenotime.net>,
+ Dave Jones <davej@redhat.com>,
+ Chuck Wolber <chuckw@quantumlinux.com>,
+ Chris Wedgwood <reviews@ml.cw.f00f.org>,
+ Michael Krufky <mkrufky@linuxtv.org>,
+ Chuck Ebbert <cebbert@redhat.com>,
+ Domenico Andreoli <cavokz@gmail.com>,
+ Willy Tarreau <w@1wt.eu>,
+ Rodrigo Rubira Branco <rbranco@la.checkpoint.com>,
+ Jake Edge <jake@lwn.net>,
+ Eugene Teo <eteo@redhat.com>,
+ torvalds@linux-foundation.org,
+ akpm@linux-foundation.org,
+ alan@lxorguk.ukuu.org.uk,
+ Eric Dumazet <dada1@cosmosbay.com>,
+ Pavel Emelyanov <xemul@openvz.org>,
+ "David S. Miller" <davem@davemloft.net>
+Subject: [patch 06/83] udp: multicast packets need to check namespace
+References: <20081211190201.612240183@mini.kroah.org>
+Content-Disposition: inline; filename=0005-udp-multicast-packets-need-to-check-namespace.patch
+Content-Length: 3290
+Lines: 95
+
+2.6.27-stable review patch.  If anyone has any objections, please let us know.
+
+------------------
+
+From: Eric Dumazet <dada1@cosmosbay.com>
+
+[ Upstream commit 920a46115ca3fa88990276d98520abab85495b2d ]
+
+Current UDP multicast delivery is not namespace aware.
+
+Signed-off-by: Eric Dumazet <dada1@cosmosbay.com>
+Acked-by: Pavel Emelyanov <xemul@openvz.org>
+Signed-off-by: David S. Miller <davem@davemloft.net>
+Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
+
+---
+ net/ipv4/udp.c |   12 +++++++-----
+ net/ipv6/udp.c |    8 ++++----
+ 2 files changed, 11 insertions(+), 9 deletions(-)
+
+--- a/net/ipv4/udp.c
++++ b/net/ipv4/udp.c
+@@ -302,7 +302,7 @@ static struct sock *__udp4_lib_lookup(st
+       return result;
+ }
+-static inline struct sock *udp_v4_mcast_next(struct sock *sk,
++static inline struct sock *udp_v4_mcast_next(struct net *net, struct sock *sk,
+                                            __be16 loc_port, __be32 loc_addr,
+                                            __be16 rmt_port, __be32 rmt_addr,
+                                            int dif)
+@@ -314,7 +314,8 @@ static inline struct sock *udp_v4_mcast_
+       sk_for_each_from(s, node) {
+               struct inet_sock *inet = inet_sk(s);
+-              if (s->sk_hash != hnum                                  ||
++              if (!net_eq(sock_net(s), net)                           ||
++                  s->sk_hash != hnum                                  ||
+                   (inet->daddr && inet->daddr != rmt_addr)            ||
+                   (inet->dport != rmt_port && inet->dport)            ||
+                   (inet->rcv_saddr && inet->rcv_saddr != loc_addr)    ||
+@@ -1097,15 +1098,16 @@ static int __udp4_lib_mcast_deliver(stru
+       read_lock(&udp_hash_lock);
+       sk = sk_head(&udptable[udp_hashfn(net, ntohs(uh->dest))]);
+       dif = skb->dev->ifindex;
+-      sk = udp_v4_mcast_next(sk, uh->dest, daddr, uh->source, saddr, dif);
++      sk = udp_v4_mcast_next(net, sk, uh->dest, daddr, uh->source, saddr, dif);
+       if (sk) {
+               struct sock *sknext = NULL;
+               do {
+                       struct sk_buff *skb1 = skb;
+-                      sknext = udp_v4_mcast_next(sk_next(sk), uh->dest, daddr,
+-                                                 uh->source, saddr, dif);
++                      sknext = udp_v4_mcast_next(net, sk_next(sk), uh->dest,
++                                                 daddr, uh->source, saddr,
++                                                 dif);
+                       if (sknext)
+                               skb1 = skb_clone(skb, GFP_ATOMIC);
+--- a/net/ipv6/udp.c
++++ b/net/ipv6/udp.c
+@@ -313,7 +313,7 @@ drop:
+       return -1;
+ }
+-static struct sock *udp_v6_mcast_next(struct sock *sk,
++static struct sock *udp_v6_mcast_next(struct net *net, struct sock *sk,
+                                     __be16 loc_port, struct in6_addr *loc_addr,
+                                     __be16 rmt_port, struct in6_addr *rmt_addr,
+                                     int dif)
+@@ -325,7 +325,7 @@ static struct sock *udp_v6_mcast_next(st
+       sk_for_each_from(s, node) {
+               struct inet_sock *inet = inet_sk(s);
+-              if (sock_net(s) != sock_net(sk))
++              if (!net_eq(sock_net(s), net))
+                       continue;
+               if (s->sk_hash == num && s->sk_family == PF_INET6) {
+@@ -368,14 +368,14 @@ static int __udp6_lib_mcast_deliver(stru
+       read_lock(&udp_hash_lock);
+       sk = sk_head(&udptable[udp_hashfn(net, ntohs(uh->dest))]);
+       dif = inet6_iif(skb);
+-      sk = udp_v6_mcast_next(sk, uh->dest, daddr, uh->source, saddr, dif);
++      sk = udp_v6_mcast_next(net, sk, uh->dest, daddr, uh->source, saddr, dif);
+       if (!sk) {
+               kfree_skb(skb);
+               goto out;
+       }
+       sk2 = sk;
+-      while ((sk2 = udp_v6_mcast_next(sk_next(sk2), uh->dest, daddr,
++      while ((sk2 = udp_v6_mcast_next(net, sk_next(sk2), uh->dest, daddr,
+                                       uh->source, saddr, dif))) {
+               struct sk_buff *buff = skb_clone(skb, GFP_ATOMIC);
+               if (buff) {
+
+
+From gregkh@mini.kroah.org Thu Dec 11 11:04:34 2008
+Message-Id: <20081211190434.440092397@mini.kroah.org>
+User-Agent: quilt/0.47-1
+Date: Thu, 11 Dec 2008 11:02:08 -0800
+From: Greg KH <gregkh@suse.de>
+To: linux-kernel@vger.kernel.org,
+ stable@kernel.org
+Cc: Justin Forbes <jmforbes@linuxtx.org>,
+ Zwane Mwaikambo <zwane@arm.linux.org.uk>,
+ Theodore Ts'o <tytso@mit.edu>,
+ Randy Dunlap <rdunlap@xenotime.net>,
+ Dave Jones <davej@redhat.com>,
+ Chuck Wolber <chuckw@quantumlinux.com>,
+ Chris Wedgwood <reviews@ml.cw.f00f.org>,
+ Michael Krufky <mkrufky@linuxtv.org>,
+ Chuck Ebbert <cebbert@redhat.com>,
+ Domenico Andreoli <cavokz@gmail.com>,
+ Willy Tarreau <w@1wt.eu>,
+ Rodrigo Rubira Branco <rbranco@la.checkpoint.com>,
+ Jake Edge <jake@lwn.net>,
+ Eugene Teo <eteo@redhat.com>,
+ torvalds@linux-foundation.org,
+ akpm@linux-foundation.org,
+ alan@lxorguk.ukuu.org.uk,
+ "David S. Miller" <davem@davemloft.net>
+Subject: [patch 07/83] sparc64: Fix offset calculation in compute_size()
+References: <20081211190201.612240183@mini.kroah.org>
+Content-Disposition: inline; filename=0001-sparc64-Fix-offset-calculation-in-compute_size.patch
+Content-Length: 795
+Lines: 26
+
+2.6.27-stable review patch.  If anyone has any objections, please let us know.
+
+------------------
+
+From: David S. Miller <davem@davemloft.net>
+
+[ Upstream commit b270ee8a9fc9547eb781ce9ccd379450bcf9a204 ]
+
+The fault address is somewhere inside of the buffer, not
+before it.
+
+Signed-off-by: David S. Miller <davem@davemloft.net>
+Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
+
+---
+ arch/sparc64/lib/user_fixup.c |    2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+--- a/arch/sparc64/lib/user_fixup.c
++++ b/arch/sparc64/lib/user_fixup.c
+@@ -24,7 +24,7 @@ static unsigned long compute_size(unsign
+       if (fault_addr < start || fault_addr >= end) {
+               *offset = 0;
+       } else {
+-              *offset = start - fault_addr;
++              *offset = fault_addr - start;
+               size = end - fault_addr;
+       }
+       return size;
+
+
+From gregkh@mini.kroah.org Thu Dec 11 11:04:34 2008
+Message-Id: <20081211190434.620511626@mini.kroah.org>
+User-Agent: quilt/0.47-1
+Date: Thu, 11 Dec 2008 11:02:09 -0800
+From: Greg KH <gregkh@suse.de>
+To: linux-kernel@vger.kernel.org,
+ stable@kernel.org
+Cc: Justin Forbes <jmforbes@linuxtx.org>,
+ Zwane Mwaikambo <zwane@arm.linux.org.uk>,
+ Theodore Ts'o <tytso@mit.edu>,
+ Randy Dunlap <rdunlap@xenotime.net>,
+ Dave Jones <davej@redhat.com>,
+ Chuck Wolber <chuckw@quantumlinux.com>,
+ Chris Wedgwood <reviews@ml.cw.f00f.org>,
+ Michael Krufky <mkrufky@linuxtv.org>,
+ Chuck Ebbert <cebbert@redhat.com>,
+ Domenico Andreoli <cavokz@gmail.com>,
+ Willy Tarreau <w@1wt.eu>,
+ Rodrigo Rubira Branco <rbranco@la.checkpoint.com>,
+ Jake Edge <jake@lwn.net>,
+ Eugene Teo <eteo@redhat.com>,
+ torvalds@linux-foundation.org,
+ akpm@linux-foundation.org,
+ alan@lxorguk.ukuu.org.uk,
+ Hugh Dickins <hugh@veritas.com>,
+ "David S. Miller" <davem@davemloft.net>
+Subject: [patch 08/83] sparc64: Fix __copy_{to,from}_user_inatomic defines.
+References: <20081211190201.612240183@mini.kroah.org>
+Content-Disposition: inline; filename=0002-sparc64-Fix-__copy_-to-from-_user_inatomic-defines.patch
+Content-Length: 1182
+Lines: 31
+
+2.6.27-stable review patch.  If anyone has any objections, please let us know.
+
+------------------
+
+From: Hugh Dickins <hugh@veritas.com>
+
+[ Upstream commit b270ee8a9fc9547eb781ce9ccd379450bcf9a204 ]
+
+Alexander Beregalov reports oops in __bzero() called from
+copy_from_user_fixup() called from iov_iter_copy_from_user_atomic(),
+when running dbench on tmpfs on sparc64: its __copy_from_user_inatomic
+and __copy_to_user_inatomic should be avoiding, not calling, the fixups.
+
+Signed-off-by: Hugh Dickins <hugh@veritas.com>
+Signed-off-by: David S. Miller <davem@davemloft.net>
+Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
+
+---
+ arch/sparc/include/asm/uaccess_64.h |    4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+--- a/arch/sparc/include/asm/uaccess_64.h
++++ b/arch/sparc/include/asm/uaccess_64.h
+@@ -265,8 +265,8 @@ extern long __strnlen_user(const char __
+ #define strlen_user __strlen_user
+ #define strnlen_user __strnlen_user
+-#define __copy_to_user_inatomic __copy_to_user
+-#define __copy_from_user_inatomic __copy_from_user
++#define __copy_to_user_inatomic ___copy_to_user
++#define __copy_from_user_inatomic ___copy_from_user
+ #endif  /* __ASSEMBLY__ */
+
+
+From gregkh@mini.kroah.org Thu Dec 11 11:04:34 2008
+Message-Id: <20081211190434.797530353@mini.kroah.org>
+User-Agent: quilt/0.47-1
+Date: Thu, 11 Dec 2008 11:02:10 -0800
+From: Greg KH <gregkh@suse.de>
+To: linux-kernel@vger.kernel.org,
+ stable@kernel.org
+Cc: Justin Forbes <jmforbes@linuxtx.org>,
+ Zwane Mwaikambo <zwane@arm.linux.org.uk>,
+ Theodore Ts'o <tytso@mit.edu>,
+ Randy Dunlap <rdunlap@xenotime.net>,
+ Dave Jones <davej@redhat.com>,
+ Chuck Wolber <chuckw@quantumlinux.com>,
+ Chris Wedgwood <reviews@ml.cw.f00f.org>,
+ Michael Krufky <mkrufky@linuxtv.org>,
+ Chuck Ebbert <cebbert@redhat.com>,
+ Domenico Andreoli <cavokz@gmail.com>,
+ Willy Tarreau <w@1wt.eu>,
+ Rodrigo Rubira Branco <rbranco@la.checkpoint.com>,
+ Jake Edge <jake@lwn.net>,
+ Eugene Teo <eteo@redhat.com>,
+ torvalds@linux-foundation.org,
+ akpm@linux-foundation.org,
+ alan@lxorguk.ukuu.org.uk,
+ Max Dmitrichenko <dmitrmax@gmail.com>,
+ "David S. Miller" <davem@davemloft.net>
+Subject: [patch 09/83] sparc64: Fix PCI resource mapping on sparc64
+References: <20081211190201.612240183@mini.kroah.org>
+Content-Disposition: inline; filename=0003-sparc64-Fix-PCI-resource-mapping-on-sparc64.patch
+Content-Length: 1734
+Lines: 50
+
+2.6.27-stable review patch.  If anyone has any objections, please let us know.
+
+------------------
+
+From: Max Dmitrichenko <dmitrmax@gmail.com>
+
+[ Upstream commit 145e1c0023585e0e8f6df22316308ec61c5066b2 ]
+
+There is a problem discovered in recent versions of ATI Mach64 driver
+in X.org on sparc64 architecture. In short, the driver fails to mmap
+MMIO aperture (PCI resource #2).
+
+I've found that kernel's __pci_mmap_make_offset() returns EINVAL. It
+checks whether user attempts to mmap more than the resource length,
+which is 0x1000 bytes in our case. But PAGE_SIZE on SPARC64 is 0x2000
+and this is what actually is being mmaped. So __pci_mmap_make_offset()
+failed for this PCI resource.
+
+Signed-off-by: Max Dmitrichenko <dmitrmax@gmail.com>
+Signed-off-by: David S. Miller <davem@davemloft.net>
+Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
+
+---
+ arch/sparc64/kernel/pci.c |   10 +++++++++-
+ 1 file changed, 9 insertions(+), 1 deletion(-)
+
+--- a/arch/sparc64/kernel/pci.c
++++ b/arch/sparc64/kernel/pci.c
+@@ -1017,6 +1017,7 @@ static int __pci_mmap_make_offset(struct
+       for (i = 0; i <= PCI_ROM_RESOURCE; i++) {
+               struct resource *rp = &pdev->resource[i];
++              resource_size_t aligned_end;
+               /* Active? */
+               if (!rp->flags)
+@@ -1034,8 +1035,15 @@ static int __pci_mmap_make_offset(struct
+                               continue;
+               }
++              /* Align the resource end to the next page address.
++               * PAGE_SIZE intentionally added instead of (PAGE_SIZE - 1),
++               * because actually we need the address of the next byte
++               * after rp->end.
++               */
++              aligned_end = (rp->end + PAGE_SIZE) & PAGE_MASK;
++
+               if ((rp->start <= user_paddr) &&
+-                  (user_paddr + user_size) <= (rp->end + 1UL))
++                  (user_paddr + user_size) <= aligned_end)
+                       break;
+       }
+
+
+From gregkh@mini.kroah.org Thu Dec 11 11:04:35 2008
+Message-Id: <20081211190434.971247544@mini.kroah.org>
+User-Agent: quilt/0.47-1
+Date: Thu, 11 Dec 2008 11:02:11 -0800
+From: Greg KH <gregkh@suse.de>
+To: linux-kernel@vger.kernel.org,
+ stable@kernel.org
+Cc: Justin Forbes <jmforbes@linuxtx.org>,
+ Zwane Mwaikambo <zwane@arm.linux.org.uk>,
+ Theodore Ts'o <tytso@mit.edu>,
+ Randy Dunlap <rdunlap@xenotime.net>,
+ Dave Jones <davej@redhat.com>,
+ Chuck Wolber <chuckw@quantumlinux.com>,
+ Chris Wedgwood <reviews@ml.cw.f00f.org>,
+ Michael Krufky <mkrufky@linuxtv.org>,
+ Chuck Ebbert <cebbert@redhat.com>,
+ Domenico Andreoli <cavokz@gmail.com>,
+ Willy Tarreau <w@1wt.eu>,
+ Rodrigo Rubira Branco <rbranco@la.checkpoint.com>,
+ Jake Edge <jake@lwn.net>,
+ Eugene Teo <eteo@redhat.com>,
+ torvalds@linux-foundation.org,
+ akpm@linux-foundation.org,
+ alan@lxorguk.ukuu.org.uk,
+ "David S. Miller" <davem@davemloft.net>
+Subject: [patch 10/83] sparc64: Fix bug in PTRACE_SETFPREGS64 handling.
+References: <20081211190201.612240183@mini.kroah.org>
+Content-Disposition: inline; filename=0004-sparc64-Fix-bug-in-PTRACE_SETFPREGS64-handling.patch
+Content-Length: 1026
+Lines: 31
+
+2.6.27-stable review patch.  If anyone has any objections, please let us know.
+
+------------------
+
+From: Chris Torek <chris.torek@windriver.com>
+
+[ Upstream commit 5769907ade8dda7002b304c03ef9e4ee5c1e0821 ]
+
+From: Chris Torek <chris.torek@windriver.com>
+
+>The SPARC64 kernel code for PTRACE_SETFPREGS64 appears to be an exact copy
+>of that for PTRACE_GETFPREGS64.  This means that gdbserver and native
+>64-bit GDB cannot set floating-point registers.
+
+It looks like a simple typo.
+
+Signed-off-by: David S. Miller <davem@davemloft.net>
+Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
+
+---
+ arch/sparc64/kernel/ptrace.c |    2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+--- a/arch/sparc64/kernel/ptrace.c
++++ b/arch/sparc64/kernel/ptrace.c
+@@ -1014,7 +1014,7 @@ long arch_ptrace(struct task_struct *chi
+               break;
+       case PTRACE_SETFPREGS64:
+-              ret = copy_regset_to_user(child, view, REGSET_FP,
++              ret = copy_regset_from_user(child, view, REGSET_FP,
+                                         0 * sizeof(u64),
+                                         33 * sizeof(u64),
+                                         fps);
+
+
+From gregkh@mini.kroah.org Thu Dec 11 11:04:35 2008
+Message-Id: <20081211190435.164643492@mini.kroah.org>
+User-Agent: quilt/0.47-1
+Date: Thu, 11 Dec 2008 11:02:12 -0800
+From: Greg KH <gregkh@suse.de>
+To: linux-kernel@vger.kernel.org,
+ stable@kernel.org
+Cc: Justin Forbes <jmforbes@linuxtx.org>,
+ Zwane Mwaikambo <zwane@arm.linux.org.uk>,
+ Theodore Ts'o <tytso@mit.edu>,
+ Randy Dunlap <rdunlap@xenotime.net>,
+ Dave Jones <davej@redhat.com>,
+ Chuck Wolber <chuckw@quantumlinux.com>,
+ Chris Wedgwood <reviews@ml.cw.f00f.org>,
+ Michael Krufky <mkrufky@linuxtv.org>,
+ Chuck Ebbert <cebbert@redhat.com>,
+ Domenico Andreoli <cavokz@gmail.com>,
+ Willy Tarreau <w@1wt.eu>,
+ Rodrigo Rubira Branco <rbranco@la.checkpoint.com>,
+ Jake Edge <jake@lwn.net>,
+ Eugene Teo <eteo@redhat.com>,
+ torvalds@linux-foundation.org,
+ akpm@linux-foundation.org,
+ alan@lxorguk.ukuu.org.uk,
+ Joseph Myers <joseph@codesourcery.com>,
+ "David S. Miller" <davem@davemloft.net>
+Subject: [patch 11/83] sparc64: Fix VIS emulation bugs
+References: <20081211190201.612240183@mini.kroah.org>
+Content-Disposition: inline; filename=0005-sparc64-Fix-VIS-emulation-bugs.patch
+Content-Length: 1870
+Lines: 52
+
+2.6.27-stable review patch.  If anyone has any objections, please let us know.
+
+------------------
+
+From: Joseph Myers <joseph@codesourcery.com>
+
+[ Upstream commit 726c12f57d7e3ff43693d88e13b1ff02464c75d3 ]
+
+This patch fixes some bugs in VIS emulation that cause the GCC test
+failure
+
+FAIL: gcc.target/sparc/pdist-3.c execution test
+
+for both 32-bit and 64-bit testing on hardware lacking these
+instructions.  The emulation code for the pdist instruction uses
+RS1(insn) for both source registers rs1 and rs2, which is obviously
+wrong and leads to the instruction doing nothing (the observed
+problem), and further inspection of the code shows that RS1 uses a
+shift of 24 and RD a shift of 25, which clearly cannot both be right;
+examining SPARC documentation indicates the correct shift for RS1 is
+14.
+
+This patch fixes the bug if single-stepping over the affected
+instruction in the debugger, but not if the testcase is run
+standalone.  For that, Wind River has another patch I hope they will
+send as a followup to this patch submission.
+
+Signed-off-by: Joseph Myers <joseph@codesourcery.com>
+Signed-off-by: David S. Miller <davem@davemloft.net>
+Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
+
+---
+ arch/sparc64/kernel/visemul.c |    4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+--- a/arch/sparc64/kernel/visemul.c
++++ b/arch/sparc64/kernel/visemul.c
+@@ -131,7 +131,7 @@
+ #define VIS_OPF_SHIFT 5
+ #define VIS_OPF_MASK  (0x1ff << VIS_OPF_SHIFT)
+-#define RS1(INSN)     (((INSN) >> 24) & 0x1f)
++#define RS1(INSN)     (((INSN) >> 14) & 0x1f)
+ #define RS2(INSN)     (((INSN) >>  0) & 0x1f)
+ #define RD(INSN)      (((INSN) >> 25) & 0x1f)
+@@ -445,7 +445,7 @@ static void pdist(struct pt_regs *regs, 
+       unsigned long i;
+       rs1 = fpd_regval(f, RS1(insn));
+-      rs2 = fpd_regval(f, RS1(insn));
++      rs2 = fpd_regval(f, RS2(insn));
+       rd = fpd_regaddr(f, RD(insn));
+       rd_val = *rd;
+
+
+From gregkh@mini.kroah.org Thu Dec 11 11:04:35 2008
+Message-Id: <20081211190435.347676182@mini.kroah.org>
+User-Agent: quilt/0.47-1
+Date: Thu, 11 Dec 2008 11:02:13 -0800
+From: Greg KH <gregkh@suse.de>
+To: linux-kernel@vger.kernel.org,
+ stable@kernel.org
+Cc: Justin Forbes <jmforbes@linuxtx.org>,
+ Zwane Mwaikambo <zwane@arm.linux.org.uk>,
+ Theodore Ts'o <tytso@mit.edu>,
+ Randy Dunlap <rdunlap@xenotime.net>,
+ Dave Jones <davej@redhat.com>,
+ Chuck Wolber <chuckw@quantumlinux.com>,
+ Chris Wedgwood <reviews@ml.cw.f00f.org>,
+ Michael Krufky <mkrufky@linuxtv.org>,
+ Chuck Ebbert <cebbert@redhat.com>,
+ Domenico Andreoli <cavokz@gmail.com>,
+ Willy Tarreau <w@1wt.eu>,
+ Rodrigo Rubira Branco <rbranco@la.checkpoint.com>,
+ Jake Edge <jake@lwn.net>,
+ Eugene Teo <eteo@redhat.com>,
+ torvalds@linux-foundation.org,
+ akpm@linux-foundation.org,
+ alan@lxorguk.ukuu.org.uk,
+ "Hong H. Pham" <hong.pham@windriver.com>,
+ "David S. Miller" <davem@davemloft.net>
+Subject: [patch 12/83] sparc64: Sync FPU state in VIS emulation handler.
+References: <20081211190201.612240183@mini.kroah.org>
+Content-Disposition: inline; filename=0006-sparc64-Sync-FPU-state-in-VIS-emulation-handler.patch
+Content-Length: 841
+Lines: 27
+
+2.6.27-stable review patch.  If anyone has any objections, please let us know.
+
+------------------
+
+From: Hong H. Pham <hong.pham@windriver.com>
+
+[ Upstream commit 410d2c8187ed969238ba98008c1d57307a56cfd8 ]
+
+Copy the FPU state to the task's thread_info->fpregs for the VIS emulation
+functions to access.
+
+Signed-off-by: Hong H. Pham <hong.pham@windriver.com>
+Signed-off-by: David S. Miller <davem@davemloft.net>
+Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
+
+---
+ arch/sparc64/kernel/visemul.c |    2 ++
+ 1 file changed, 2 insertions(+)
+
+--- a/arch/sparc64/kernel/visemul.c
++++ b/arch/sparc64/kernel/visemul.c
+@@ -807,6 +807,8 @@ int vis_emul(struct pt_regs *regs, unsig
+       if (get_user(insn, (u32 __user *) pc))
+               return -EFAULT;
++      save_and_clear_fpu();
++
+       opf = (insn & VIS_OPF_MASK) >> VIS_OPF_SHIFT;
+       switch (opf) {
+       default:
+
+
+From gregkh@mini.kroah.org Thu Dec 11 11:04:35 2008
+Message-Id: <20081211190435.541819013@mini.kroah.org>
+User-Agent: quilt/0.47-1
+Date: Thu, 11 Dec 2008 11:02:14 -0800
+From: Greg KH <gregkh@suse.de>
+To: linux-kernel@vger.kernel.org,
+ stable@kernel.org
+Cc: Justin Forbes <jmforbes@linuxtx.org>,
+ Zwane Mwaikambo <zwane@arm.linux.org.uk>,
+ Theodore Ts'o <tytso@mit.edu>,
+ Randy Dunlap <rdunlap@xenotime.net>,
+ Dave Jones <davej@redhat.com>,
+ Chuck Wolber <chuckw@quantumlinux.com>,
+ Chris Wedgwood <reviews@ml.cw.f00f.org>,
+ Michael Krufky <mkrufky@linuxtv.org>,
+ Chuck Ebbert <cebbert@redhat.com>,
+ Domenico Andreoli <cavokz@gmail.com>,
+ Willy Tarreau <w@1wt.eu>,
+ Rodrigo Rubira Branco <rbranco@la.checkpoint.com>,
+ Jake Edge <jake@lwn.net>,
+ Eugene Teo <eteo@redhat.com>,
+ torvalds@linux-foundation.org,
+ akpm@linux-foundation.org,
+ alan@lxorguk.ukuu.org.uk,
+ Tejun Heo <tj@kernel.org>,
+ Jens Axboe <jens.axboe@oracle.com>,
+ Jeff Garzik <jeff@garzik.org>
+Subject: [patch 13/83] Enforce a minimum SG_IO timeout
+References: <20081211190201.612240183@mini.kroah.org>
+Content-Disposition: inline; filename=enforce-a-minimum-sg_io-timeout.patch
+Content-Length: 1952
+Lines: 60
+
+2.6.27-stable review patch.  If anyone has any objections, please let us know.
+
+------------------
+
+From: Linus Torvalds <torvalds@linux-foundation.org>
+
+commit f2f1fa78a155524b849edf359e42a3001ea652c0 upstream.
+
+There's no point in having too short SG_IO timeouts, since if the
+command does end up timing out, we'll end up through the reset sequence
+that is several seconds long in order to abort the command that timed
+out.
+
+As a result, shorter timeouts than a few seconds simply do not make
+sense, as the recovery would be longer than the timeout itself.
+
+Add a BLK_MIN_SG_TIMEOUT to match the existign BLK_DEFAULT_SG_TIMEOUT.
+
+Suggested-by: Alan Cox <alan@lxorguk.ukuu.org.uk>
+Acked-by: Tejun Heo <tj@kernel.org>
+Acked-by: Jens Axboe <jens.axboe@oracle.com>
+Cc: Jeff Garzik <jeff@garzik.org>
+Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
+Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
+
+---
+ block/bsg.c            |    2 ++
+ block/scsi_ioctl.c     |    2 ++
+ include/linux/blkdev.h |    1 +
+ 3 files changed, 5 insertions(+)
+
+--- a/block/bsg.c
++++ b/block/bsg.c
+@@ -202,6 +202,8 @@ static int blk_fill_sgv4_hdr_rq(struct r
+               rq->timeout = q->sg_timeout;
+       if (!rq->timeout)
+               rq->timeout = BLK_DEFAULT_SG_TIMEOUT;
++      if (rq->timeout < BLK_MIN_SG_TIMEOUT)
++              rq->timeout = BLK_MIN_SG_TIMEOUT;
+       return 0;
+ }
+--- a/block/scsi_ioctl.c
++++ b/block/scsi_ioctl.c
+@@ -208,6 +208,8 @@ static int blk_fill_sghdr_rq(struct requ
+               rq->timeout = q->sg_timeout;
+       if (!rq->timeout)
+               rq->timeout = BLK_DEFAULT_SG_TIMEOUT;
++      if (rq->timeout < BLK_MIN_SG_TIMEOUT)
++              rq->timeout = BLK_MIN_SG_TIMEOUT;
+       return 0;
+ }
+--- a/include/linux/blkdev.h
++++ b/include/linux/blkdev.h
+@@ -623,6 +623,7 @@ extern unsigned long blk_max_low_pfn, bl
+  * default timeout for SG_IO if none specified
+  */
+ #define BLK_DEFAULT_SG_TIMEOUT        (60 * HZ)
++#define BLK_MIN_SG_TIMEOUT    (7 * HZ)
+ #ifdef CONFIG_BOUNCE
+ extern int init_emergency_isa_pool(void);
+
+
+From gregkh@mini.kroah.org Thu Dec 11 11:04:35 2008
+Message-Id: <20081211190435.722339791@mini.kroah.org>
+User-Agent: quilt/0.47-1
+Date: Thu, 11 Dec 2008 11:02:15 -0800
+From: Greg KH <gregkh@suse.de>
+To: linux-kernel@vger.kernel.org,
+ stable@kernel.org
+Cc: Justin Forbes <jmforbes@linuxtx.org>,
+ Zwane Mwaikambo <zwane@arm.linux.org.uk>,
+ Theodore Ts'o <tytso@mit.edu>,
+ Randy Dunlap <rdunlap@xenotime.net>,
+ Dave Jones <davej@redhat.com>,
+ Chuck Wolber <chuckw@quantumlinux.com>,
+ Chris Wedgwood <reviews@ml.cw.f00f.org>,
+ Michael Krufky <mkrufky@linuxtv.org>,
+ Chuck Ebbert <cebbert@redhat.com>,
+ Domenico Andreoli <cavokz@gmail.com>,
+ Willy Tarreau <w@1wt.eu>,
+ Rodrigo Rubira Branco <rbranco@la.checkpoint.com>,
+ Jake Edge <jake@lwn.net>,
+ Eugene Teo <eteo@redhat.com>,
+ torvalds@linux-foundation.org,
+ akpm@linux-foundation.org,
+ alan@lxorguk.ukuu.org.uk,
+ Andi Kleen <ak@linux.intel.com>,
+ Al Viro <viro@zeniv.linux.org.uk>,
+ Jonathan Corbet <corbet@lwn.net>
+Subject: [patch 14/83] Fix a race condition in FASYNC handling
+References: <20081211190201.612240183@mini.kroah.org>
+Content-Disposition: inline; filename=fix-a-race-condition-in-fasync-handling.patch
+Content-Length: 2564
+Lines: 90
+
+2.6.27-stable review patch.  If anyone has any objections, please let us know.
+
+------------------
+
+From: Jonathan Corbet <corbet@lwn.net>
+
+commit 218d11a8b071b23b76c484fd5f72a4fe3306801e upstream.
+
+Changeset a238b790d5f99c7832f9b73ac8847025815b85f7 (Call fasync()
+functions without the BKL) introduced a race which could leave
+file->f_flags in a state inconsistent with what the underlying
+driver/filesystem believes.  Revert that change, and also fix the same
+races in ioctl_fioasync() and ioctl_fionbio().
+
+This is a minimal, short-term fix; the real fix will not involve the
+BKL.
+
+Reported-by: Oleg Nesterov <oleg@redhat.com>
+Cc: Andi Kleen <ak@linux.intel.com>
+Cc: Al Viro <viro@zeniv.linux.org.uk>
+Signed-off-by: Jonathan Corbet <corbet@lwn.net>
+Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
+Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
+
+---
+ fs/fcntl.c |    7 +++++++
+ fs/ioctl.c |   12 ++++++++----
+ 2 files changed, 15 insertions(+), 4 deletions(-)
+
+--- a/fs/fcntl.c
++++ b/fs/fcntl.c
+@@ -19,6 +19,7 @@
+ #include <linux/signal.h>
+ #include <linux/rcupdate.h>
+ #include <linux/pid_namespace.h>
++#include <linux/smp_lock.h>
+ #include <asm/poll.h>
+ #include <asm/siginfo.h>
+@@ -175,6 +176,11 @@ static int setfl(int fd, struct file * f
+       if (error)
+               return error;
++      /*
++       * We still need a lock here for now to keep multiple FASYNC calls
++       * from racing with each other.
++       */
++      lock_kernel();
+       if ((arg ^ filp->f_flags) & FASYNC) {
+               if (filp->f_op && filp->f_op->fasync) {
+                       error = filp->f_op->fasync(fd, filp, (arg & FASYNC) != 0);
+@@ -185,6 +191,7 @@ static int setfl(int fd, struct file * f
+       filp->f_flags = (arg & SETFL_MASK) | (filp->f_flags & ~SETFL_MASK);
+  out:
++      unlock_kernel();
+       return error;
+ }
+--- a/fs/ioctl.c
++++ b/fs/ioctl.c
+@@ -123,11 +123,9 @@ static int ioctl_fioasync(unsigned int f
+       /* Did FASYNC state change ? */
+       if ((flag ^ filp->f_flags) & FASYNC) {
+-              if (filp->f_op && filp->f_op->fasync) {
+-                      lock_kernel();
++              if (filp->f_op && filp->f_op->fasync)
+                       error = filp->f_op->fasync(fd, filp, on);
+-                      unlock_kernel();
+-              } else
++              else
+                       error = -ENOTTY;
+       }
+       if (error)
+@@ -163,11 +161,17 @@ int do_vfs_ioctl(struct file *filp, unsi
+               break;
+       case FIONBIO:
++              /* BKL needed to avoid races tweaking f_flags */
++              lock_kernel();
+               error = ioctl_fionbio(filp, argp);
++              unlock_kernel();
+               break;
+       case FIOASYNC:
++              /* BKL needed to avoid races tweaking f_flags */
++              lock_kernel();
+               error = ioctl_fioasync(fd, filp, argp);
++              unlock_kernel();
+               break;
+       case FIOQSIZE:
+
+
+From gregkh@mini.kroah.org Thu Dec 11 11:04:36 2008
+Message-Id: <20081211190435.947971680@mini.kroah.org>
+User-Agent: quilt/0.47-1
+Date: Thu, 11 Dec 2008 11:02:16 -0800
+From: Greg KH <gregkh@suse.de>
+To: linux-kernel@vger.kernel.org,
+ stable@kernel.org
+Cc: Justin Forbes <jmforbes@linuxtx.org>,
+ Zwane Mwaikambo <zwane@arm.linux.org.uk>,
+ Theodore Ts'o <tytso@mit.edu>,
+ Randy Dunlap <rdunlap@xenotime.net>,
+ Dave Jones <davej@redhat.com>,
+ Chuck Wolber <chuckw@quantumlinux.com>,
+ Chris Wedgwood <reviews@ml.cw.f00f.org>,
+ Michael Krufky <mkrufky@linuxtv.org>,
+ Chuck Ebbert <cebbert@redhat.com>,
+ Domenico Andreoli <cavokz@gmail.com>,
+ Willy Tarreau <w@1wt.eu>,
+ Rodrigo Rubira Branco <rbranco@la.checkpoint.com>,
+ Jake Edge <jake@lwn.net>,
+ Eugene Teo <eteo@redhat.com>,
+ torvalds@linux-foundation.org,
+ akpm@linux-foundation.org,
+ alan@lxorguk.ukuu.org.uk,
+ "Rafael J. Wysocki" <rjw@sisk.pl>,
+ Len Brown <len.brown@intel.com>
+Subject: [patch 15/83] ACPI suspend: Blacklist boxes that require us to set SCI_EN directly on resume
+References: <20081211190201.612240183@mini.kroah.org>
+Content-Disposition: inline; filename=acpi-suspend-blacklist-boxes-that-require-us-to-set-sci_en-directly-on-resume.patch
+Content-Length: 3561
+Lines: 105
+
+2.6.27-stable review patch.  If anyone has any objections, please let us know.
+
+------------------
+
+From: Rafael J. Wysocki <rjw@sisk.pl>
+
+commit 65df78473ffbf3bff5e2034df1638acc4f3ddd50 upstream.
+
+Some Apple boxes evidently require us to set SCI_EN on resume
+directly, because if we don't do that, they hung somewhere in the
+resume code path.  Moreover, on these boxes it is not sufficient to
+use acpi_enable() to turn ACPI on during resume.  All of this is
+against the ACPI specification which states that (1) the BIOS is
+supposed to return from the S3 sleep state with ACPI enabled
+(SCI_EN set) and (2) the SCI_EN bit is owned by the hardware and we
+are not supposed to change it.
+
+For this reason, blacklist the affected systems so that the SCI_EN
+bit is set during resume on them.
+
+[NOTE: Unconditional setting SCI_EN for all system on resume doesn't
+ work, because it makes some other systems crash (that's to be
+ expected).  Also, it is not entirely clear right now if all of the
+ Apple boxes require this workaround.]
+
+This patch fixes the recent regression tracked as
+http://bugzilla.kernel.org/show_bug.cgi?id=12038
+
+Signed-off-by: Rafael J. Wysocki <rjw@sisk.pl>
+Tested-by: Tino Keitel <tino.keitel@gmx.de>
+Tested-by: Bob Copeland <me@bobcopeland.com>
+Signed-off-by: Len Brown <len.brown@intel.com>
+Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
+
+---
+ drivers/acpi/sleep/main.c |   40 +++++++++++++++++++++++++++++++++++++++-
+ 1 file changed, 39 insertions(+), 1 deletion(-)
+
+--- a/drivers/acpi/sleep/main.c
++++ b/drivers/acpi/sleep/main.c
+@@ -60,6 +60,18 @@ void __init acpi_old_suspend_ordering(vo
+       old_suspend_ordering = true;
+ }
++/*
++ * According to the ACPI specification the BIOS should make sure that ACPI is
++ * enabled and SCI_EN bit is set on wake-up from S1 - S3 sleep states.  Still,
++ * some BIOSes don't do that and therefore we use acpi_enable() to enable ACPI
++ * on such systems during resume.  Unfortunately that doesn't help in
++ * particularly pathological cases in which SCI_EN has to be set directly on
++ * resume, although the specification states very clearly that this flag is
++ * owned by the hardware.  The set_sci_en_on_resume variable will be set in such
++ * cases.
++ */
++static bool set_sci_en_on_resume;
++
+ /**
+  *    acpi_pm_disable_gpes - Disable the GPEs.
+  */
+@@ -201,7 +213,11 @@ static int acpi_suspend_enter(suspend_st
+       }
+       /* If ACPI is not enabled by the BIOS, we need to enable it here. */
+-      acpi_enable();
++      if (set_sci_en_on_resume)
++              acpi_set_register(ACPI_BITREG_SCI_ENABLE, 1);
++      else
++              acpi_enable();
++
+       /* Reprogram control registers and execute _BFS */
+       acpi_leave_sleep_state_prep(acpi_state);
+@@ -289,6 +305,12 @@ static int __init init_old_suspend_order
+       return 0;
+ }
++static int __init init_set_sci_en_on_resume(const struct dmi_system_id *d)
++{
++      set_sci_en_on_resume = true;
++      return 0;
++}
++
+ static struct dmi_system_id __initdata acpisleep_dmi_table[] = {
+       {
+       .callback = init_old_suspend_ordering,
+@@ -306,6 +328,22 @@ static struct dmi_system_id __initdata a
+               DMI_MATCH(DMI_PRODUCT_NAME, "HP xw4600 Workstation"),
+               },
+       },
++      {
++      .callback = init_set_sci_en_on_resume,
++      .ident = "Apple MacBook 1,1",
++      .matches = {
++              DMI_MATCH(DMI_SYS_VENDOR, "Apple Computer, Inc."),
++              DMI_MATCH(DMI_PRODUCT_NAME, "MacBook1,1"),
++              },
++      },
++      {
++      .callback = init_set_sci_en_on_resume,
++      .ident = "Apple MacMini 1,1",
++      .matches = {
++              DMI_MATCH(DMI_SYS_VENDOR, "Apple Computer, Inc."),
++              DMI_MATCH(DMI_PRODUCT_NAME, "Macmini1,1"),
++              },
++      },
+       {},
+ };
+ #endif /* CONFIG_SUSPEND */
+
+
+From gregkh@mini.kroah.org Thu Dec 11 11:04:36 2008
+Message-Id: <20081211190436.131880180@mini.kroah.org>
+User-Agent: quilt/0.47-1
+Date: Thu, 11 Dec 2008 11:02:17 -0800
+From: Greg KH <gregkh@suse.de>
+To: linux-kernel@vger.kernel.org,
+ stable@kernel.org
+Cc: Justin Forbes <jmforbes@linuxtx.org>,
+ Zwane Mwaikambo <zwane@arm.linux.org.uk>,
+ Theodore Ts'o <tytso@mit.edu>,
+ Randy Dunlap <rdunlap@xenotime.net>,
+ Dave Jones <davej@redhat.com>,
+ Chuck Wolber <chuckw@quantumlinux.com>,
+ Chris Wedgwood <reviews@ml.cw.f00f.org>,
+ Michael Krufky <mkrufky@linuxtv.org>,
+ Chuck Ebbert <cebbert@redhat.com>,
+ Domenico Andreoli <cavokz@gmail.com>,
+ Willy Tarreau <w@1wt.eu>,
+ Rodrigo Rubira Branco <rbranco@la.checkpoint.com>,
+ Jake Edge <jake@lwn.net>,
+ Eugene Teo <eteo@redhat.com>,
+ torvalds@linux-foundation.org,
+ akpm@linux-foundation.org,
+ alan@lxorguk.ukuu.org.uk,
+ Hidehiro Kawai <hidehiro.kawai.ez@hitachi.com>,
+ Jan Kara <jack@suse.cz>,
+  <linux-ext4@vger.kernel.org>
+Subject: [patch 16/83] jbd: fix error handling for checkpoint io
+References: <20081211190201.612240183@mini.kroah.org>
+Content-Disposition: inline; filename=jbd-fix-error-handling-for-checkpoint-io.patch
+Content-Length: 10443
+Lines: 315
+
+2.6.27-stable review patch.  If anyone has any objections, please let us know.
+
+------------------
+
+From: Hidehiro Kawai <hidehiro.kawai.ez@hitachi.com>
+
+commit 4afe978530702c934dfdb11f54073136818b2119 upstream.
+
+When a checkpointing IO fails, current JBD code doesn't check the error
+and continue journaling.  This means latest metadata can be lost from both
+the journal and filesystem.
+
+This patch leaves the failed metadata blocks in the journal space and
+aborts journaling in the case of log_do_checkpoint().  To achieve this, we
+need to do:
+
+1. don't remove the failed buffer from the checkpoint list where in
+   the case of __try_to_free_cp_buf() because it may be released or
+   overwritten by a later transaction
+2. log_do_checkpoint() is the last chance, remove the failed buffer
+   from the checkpoint list and abort the journal
+3. when checkpointing fails, don't update the journal super block to
+   prevent the journaled contents from being cleaned.  For safety,
+   don't update j_tail and j_tail_sequence either
+4. when checkpointing fails, notify this error to the ext3 layer so
+   that ext3 don't clear the needs_recovery flag, otherwise the
+   journaled contents are ignored and cleaned in the recovery phase
+5. if the recovery fails, keep the needs_recovery flag
+6. prevent cleanup_journal_tail() from being called between
+   __journal_drop_transaction() and journal_abort() (a race issue
+   between journal_flush() and __log_wait_for_space()
+
+Signed-off-by: Hidehiro Kawai <hidehiro.kawai.ez@hitachi.com>
+Acked-by: Jan Kara <jack@suse.cz>
+Cc: <linux-ext4@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>
+
+---
+ fs/jbd/checkpoint.c |   49 +++++++++++++++++++++++++++++++++++++------------
+ fs/jbd/journal.c    |   28 ++++++++++++++++++++++------
+ fs/jbd/recovery.c   |    7 +++++--
+ include/linux/jbd.h |    2 +-
+ 4 files changed, 65 insertions(+), 21 deletions(-)
+
+--- a/fs/jbd/checkpoint.c
++++ b/fs/jbd/checkpoint.c
+@@ -93,7 +93,8 @@ static int __try_to_free_cp_buf(struct j
+       int ret = 0;
+       struct buffer_head *bh = jh2bh(jh);
+-      if (jh->b_jlist == BJ_None && !buffer_locked(bh) && !buffer_dirty(bh)) {
++      if (jh->b_jlist == BJ_None && !buffer_locked(bh) &&
++          !buffer_dirty(bh) && buffer_uptodate(bh)) {
+               JBUFFER_TRACE(jh, "remove from checkpoint list");
+               ret = __journal_remove_checkpoint(jh) + 1;
+               jbd_unlock_bh_state(bh);
+@@ -160,21 +161,25 @@ static void jbd_sync_bh(journal_t *journ
+  * buffers. Note that we take the buffers in the opposite ordering
+  * from the one in which they were submitted for IO.
+  *
++ * Return 0 on success, and return <0 if some buffers have failed
++ * to be written out.
++ *
+  * Called with j_list_lock held.
+  */
+-static void __wait_cp_io(journal_t *journal, transaction_t *transaction)
++static int __wait_cp_io(journal_t *journal, transaction_t *transaction)
+ {
+       struct journal_head *jh;
+       struct buffer_head *bh;
+       tid_t this_tid;
+       int released = 0;
++      int ret = 0;
+       this_tid = transaction->t_tid;
+ restart:
+       /* Did somebody clean up the transaction in the meanwhile? */
+       if (journal->j_checkpoint_transactions != transaction ||
+                       transaction->t_tid != this_tid)
+-              return;
++              return ret;
+       while (!released && transaction->t_checkpoint_io_list) {
+               jh = transaction->t_checkpoint_io_list;
+               bh = jh2bh(jh);
+@@ -194,6 +199,9 @@ restart:
+                       spin_lock(&journal->j_list_lock);
+                       goto restart;
+               }
++              if (unlikely(!buffer_uptodate(bh)))
++                      ret = -EIO;
++
+               /*
+                * Now in whatever state the buffer currently is, we know that
+                * it has been written out and so we can drop it from the list
+@@ -203,6 +211,8 @@ restart:
+               journal_remove_journal_head(bh);
+               __brelse(bh);
+       }
++
++      return ret;
+ }
+ #define NR_BATCH      64
+@@ -226,7 +236,8 @@ __flush_batch(journal_t *journal, struct
+  * Try to flush one buffer from the checkpoint list to disk.
+  *
+  * Return 1 if something happened which requires us to abort the current
+- * scan of the checkpoint list.
++ * scan of the checkpoint list.  Return <0 if the buffer has failed to
++ * be written out.
+  *
+  * Called with j_list_lock held and drops it if 1 is returned
+  * Called under jbd_lock_bh_state(jh2bh(jh)), and drops it
+@@ -256,6 +267,9 @@ static int __process_buffer(journal_t *j
+               log_wait_commit(journal, tid);
+               ret = 1;
+       } else if (!buffer_dirty(bh)) {
++              ret = 1;
++              if (unlikely(!buffer_uptodate(bh)))
++                      ret = -EIO;
+               J_ASSERT_JH(jh, !buffer_jbddirty(bh));
+               BUFFER_TRACE(bh, "remove from checkpoint");
+               __journal_remove_checkpoint(jh);
+@@ -263,7 +277,6 @@ static int __process_buffer(journal_t *j
+               jbd_unlock_bh_state(bh);
+               journal_remove_journal_head(bh);
+               __brelse(bh);
+-              ret = 1;
+       } else {
+               /*
+                * Important: we are about to write the buffer, and
+@@ -295,6 +308,7 @@ static int __process_buffer(journal_t *j
+  * to disk. We submit larger chunks of data at once.
+  *
+  * The journal should be locked before calling this function.
++ * Called with j_checkpoint_mutex held.
+  */
+ int log_do_checkpoint(journal_t *journal)
+ {
+@@ -318,6 +332,7 @@ int log_do_checkpoint(journal_t *journal
+        * OK, we need to start writing disk blocks.  Take one transaction
+        * and write it.
+        */
++      result = 0;
+       spin_lock(&journal->j_list_lock);
+       if (!journal->j_checkpoint_transactions)
+               goto out;
+@@ -334,7 +349,7 @@ restart:
+               int batch_count = 0;
+               struct buffer_head *bhs[NR_BATCH];
+               struct journal_head *jh;
+-              int retry = 0;
++              int retry = 0, err;
+               while (!retry && transaction->t_checkpoint_list) {
+                       struct buffer_head *bh;
+@@ -347,6 +362,8 @@ restart:
+                               break;
+                       }
+                       retry = __process_buffer(journal, jh, bhs,&batch_count);
++                      if (retry < 0 && !result)
++                              result = retry;
+                       if (!retry && (need_resched() ||
+                               spin_needbreak(&journal->j_list_lock))) {
+                               spin_unlock(&journal->j_list_lock);
+@@ -371,14 +388,18 @@ restart:
+                * Now we have cleaned up the first transaction's checkpoint
+                * list. Let's clean up the second one
+                */
+-              __wait_cp_io(journal, transaction);
++              err = __wait_cp_io(journal, transaction);
++              if (!result)
++                      result = err;
+       }
+ out:
+       spin_unlock(&journal->j_list_lock);
+-      result = cleanup_journal_tail(journal);
+       if (result < 0)
+-              return result;
+-      return 0;
++              journal_abort(journal, result);
++      else
++              result = cleanup_journal_tail(journal);
++
++      return (result < 0) ? result : 0;
+ }
+ /*
+@@ -394,8 +415,9 @@ out:
+  * This is the only part of the journaling code which really needs to be
+  * aware of transaction aborts.  Checkpointing involves writing to the
+  * main filesystem area rather than to the journal, so it can proceed
+- * even in abort state, but we must not update the journal superblock if
+- * we have an abort error outstanding.
++ * even in abort state, but we must not update the super block if
++ * checkpointing may have failed.  Otherwise, we would lose some metadata
++ * buffers which should be written-back to the filesystem.
+  */
+ int cleanup_journal_tail(journal_t *journal)
+@@ -404,6 +426,9 @@ int cleanup_journal_tail(journal_t *jour
+       tid_t           first_tid;
+       unsigned long   blocknr, freed;
++      if (is_journal_aborted(journal))
++              return 1;
++
+       /* OK, work out the oldest transaction remaining in the log, and
+        * the log block it starts at.
+        *
+--- a/fs/jbd/journal.c
++++ b/fs/jbd/journal.c
+@@ -1121,9 +1121,12 @@ recovery_error:
+  *
+  * Release a journal_t structure once it is no longer in use by the
+  * journaled object.
++ * Return <0 if we couldn't clean up the journal.
+  */
+-void journal_destroy(journal_t *journal)
++int journal_destroy(journal_t *journal)
+ {
++      int err = 0;
++
+       /* Wait for the commit thread to wake up and die. */
+       journal_kill_thread(journal);
+@@ -1146,11 +1149,16 @@ void journal_destroy(journal_t *journal)
+       J_ASSERT(journal->j_checkpoint_transactions == NULL);
+       spin_unlock(&journal->j_list_lock);
+-      /* We can now mark the journal as empty. */
+-      journal->j_tail = 0;
+-      journal->j_tail_sequence = ++journal->j_transaction_sequence;
+       if (journal->j_sb_buffer) {
+-              journal_update_superblock(journal, 1);
++              if (!is_journal_aborted(journal)) {
++                      /* We can now mark the journal as empty. */
++                      journal->j_tail = 0;
++                      journal->j_tail_sequence =
++                              ++journal->j_transaction_sequence;
++                      journal_update_superblock(journal, 1);
++              } else {
++                      err = -EIO;
++              }
+               brelse(journal->j_sb_buffer);
+       }
+@@ -1160,6 +1168,8 @@ void journal_destroy(journal_t *journal)
+               journal_destroy_revoke(journal);
+       kfree(journal->j_wbuf);
+       kfree(journal);
++
++      return err;
+ }
+@@ -1359,10 +1369,16 @@ int journal_flush(journal_t *journal)
+       spin_lock(&journal->j_list_lock);
+       while (!err && journal->j_checkpoint_transactions != NULL) {
+               spin_unlock(&journal->j_list_lock);
++              mutex_lock(&journal->j_checkpoint_mutex);
+               err = log_do_checkpoint(journal);
++              mutex_unlock(&journal->j_checkpoint_mutex);
+               spin_lock(&journal->j_list_lock);
+       }
+       spin_unlock(&journal->j_list_lock);
++
++      if (is_journal_aborted(journal))
++              return -EIO;
++
+       cleanup_journal_tail(journal);
+       /* Finally, mark the journal as really needing no recovery.
+@@ -1384,7 +1400,7 @@ int journal_flush(journal_t *journal)
+       J_ASSERT(journal->j_head == journal->j_tail);
+       J_ASSERT(journal->j_tail_sequence == journal->j_transaction_sequence);
+       spin_unlock(&journal->j_state_lock);
+-      return err;
++      return 0;
+ }
+ /**
+--- a/fs/jbd/recovery.c
++++ b/fs/jbd/recovery.c
+@@ -223,7 +223,7 @@ do {                                                                       \
+  */
+ int journal_recover(journal_t *journal)
+ {
+-      int                     err;
++      int                     err, err2;
+       journal_superblock_t *  sb;
+       struct recovery_info    info;
+@@ -261,7 +261,10 @@ int journal_recover(journal_t *journal)
+       journal->j_transaction_sequence = ++info.end_transaction;
+       journal_clear_revoke(journal);
+-      sync_blockdev(journal->j_fs_dev);
++      err2 = sync_blockdev(journal->j_fs_dev);
++      if (!err)
++              err = err2;
++
+       return err;
+ }
+--- a/include/linux/jbd.h
++++ b/include/linux/jbd.h
+@@ -908,7 +908,7 @@ extern int    journal_set_features
+                  (journal_t *, unsigned long, unsigned long, unsigned long);
+ extern int       journal_create     (journal_t *);
+ extern int       journal_load       (journal_t *journal);
+-extern void      journal_destroy    (journal_t *);
++extern int       journal_destroy    (journal_t *);
+ extern int       journal_recover    (journal_t *journal);
+ extern int       journal_wipe       (journal_t *, int);
+ extern int       journal_skip_recovery        (journal_t *);
+
+
+From gregkh@mini.kroah.org Thu Dec 11 11:04:36 2008
+Message-Id: <20081211190436.364548997@mini.kroah.org>
+User-Agent: quilt/0.47-1
+Date: Thu, 11 Dec 2008 11:02:18 -0800
+From: Greg KH <gregkh@suse.de>
+To: linux-kernel@vger.kernel.org,
+ stable@kernel.org
+Cc: Justin Forbes <jmforbes@linuxtx.org>,
+ Zwane Mwaikambo <zwane@arm.linux.org.uk>,
+ Theodore Ts'o <tytso@mit.edu>,
+ Randy Dunlap <rdunlap@xenotime.net>,
+ Dave Jones <davej@redhat.com>,
+ Chuck Wolber <chuckw@quantumlinux.com>,
+ Chris Wedgwood <reviews@ml.cw.f00f.org>,
+ Michael Krufky <mkrufky@linuxtv.org>,
+ Chuck Ebbert <cebbert@redhat.com>,
+ Domenico Andreoli <cavokz@gmail.com>,
+ Willy Tarreau <w@1wt.eu>,
+ Rodrigo Rubira Branco <rbranco@la.checkpoint.com>,
+ Jake Edge <jake@lwn.net>,
+ Eugene Teo <eteo@redhat.com>,
+ torvalds@linux-foundation.org,
+ akpm@linux-foundation.org,
+ alan@lxorguk.ukuu.org.uk,
+ Hidehiro Kawai <hidehiro.kawai.ez@hitachi.com>,
+ Jan Kara <jack@suse.cz>,
+ Eric Sandeen <sandeen@redhat.com>
+Subject: [patch 17/83] jbd: test BH_Write_EIO to detect errors on metadata buffers
+References: <20081211190201.612240183@mini.kroah.org>
+Content-Disposition: inline; filename=jbd-test-bh_write_eio-to-detect-errors-on-metadata-buffers.patch
+Content-Length: 2037
+Lines: 53
+
+2.6.27-stable review patch.  If anyone has any objections, please let us know.
+
+------------------
+
+From: Hidehiro Kawai <hidehiro.kawai.ez@hitachi.com>
+
+commit 9f818b4ac04f53458d0354950b4f229f54be4dbf upstream.
+
+__try_to_free_cp_buf(), __process_buffer(), and __wait_cp_io() test
+BH_Uptodate flag to detect write I/O errors on metadata buffers.  But by
+commit 95450f5a7e53d5752ce1a0d0b8282e10fe745ae0 "ext3: don't read inode
+block if the buffer has a write error"(*), BH_Uptodate flag can be set to
+inode buffers with BH_Write_EIO in order to avoid reading old inode data.
+So now, we have to test BH_Write_EIO flag of checkpointing inode buffers
+instead of BH_Uptodate.  This patch does it.
+
+Signed-off-by: Hidehiro Kawai <hidehiro.kawai.ez@hitachi.com>
+Acked-by: Jan Kara <jack@suse.cz>
+Acked-by: Eric Sandeen <sandeen@redhat.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>
+
+---
+ fs/jbd/checkpoint.c |    6 +++---
+ 1 file changed, 3 insertions(+), 3 deletions(-)
+
+--- a/fs/jbd/checkpoint.c
++++ b/fs/jbd/checkpoint.c
+@@ -94,7 +94,7 @@ static int __try_to_free_cp_buf(struct j
+       struct buffer_head *bh = jh2bh(jh);
+       if (jh->b_jlist == BJ_None && !buffer_locked(bh) &&
+-          !buffer_dirty(bh) && buffer_uptodate(bh)) {
++          !buffer_dirty(bh) && !buffer_write_io_error(bh)) {
+               JBUFFER_TRACE(jh, "remove from checkpoint list");
+               ret = __journal_remove_checkpoint(jh) + 1;
+               jbd_unlock_bh_state(bh);
+@@ -199,7 +199,7 @@ restart:
+                       spin_lock(&journal->j_list_lock);
+                       goto restart;
+               }
+-              if (unlikely(!buffer_uptodate(bh)))
++              if (unlikely(buffer_write_io_error(bh)))
+                       ret = -EIO;
+               /*
+@@ -268,7 +268,7 @@ static int __process_buffer(journal_t *j
+               ret = 1;
+       } else if (!buffer_dirty(bh)) {
+               ret = 1;
+-              if (unlikely(!buffer_uptodate(bh)))
++              if (unlikely(buffer_write_io_error(bh)))
+                       ret = -EIO;
+               J_ASSERT_JH(jh, !buffer_jbddirty(bh));
+               BUFFER_TRACE(bh, "remove from checkpoint");
+
+
+From gregkh@mini.kroah.org Thu Dec 11 11:04:36 2008
+Message-Id: <20081211190436.567634934@mini.kroah.org>
+User-Agent: quilt/0.47-1
+Date: Thu, 11 Dec 2008 11:02:19 -0800
+From: Greg KH <gregkh@suse.de>
+To: linux-kernel@vger.kernel.org,
+ stable@kernel.org
+Cc: Justin Forbes <jmforbes@linuxtx.org>,
+ Zwane Mwaikambo <zwane@arm.linux.org.uk>,
+ Theodore Ts'o <tytso@mit.edu>,
+ Randy Dunlap <rdunlap@xenotime.net>,
+ Dave Jones <davej@redhat.com>,
+ Chuck Wolber <chuckw@quantumlinux.com>,
+ Chris Wedgwood <reviews@ml.cw.f00f.org>,
+ Michael Krufky <mkrufky@linuxtv.org>,
+ Chuck Ebbert <cebbert@redhat.com>,
+ Domenico Andreoli <cavokz@gmail.com>,
+ Willy Tarreau <w@1wt.eu>,
+ Rodrigo Rubira Branco <rbranco@la.checkpoint.com>,
+ Jake Edge <jake@lwn.net>,
+ Eugene Teo <eteo@redhat.com>,
+ torvalds@linux-foundation.org,
+ akpm@linux-foundation.org,
+ alan@lxorguk.ukuu.org.uk,
+ Wolfgang Ocker <weo@reccoware.de>,
+ David Brownell <dbrownell@users.sourceforge.net>
+Subject: [patch 18/83] spi: avoid spidev crash when device is removed
+References: <20081211190201.612240183@mini.kroah.org>
+Content-Disposition: inline; filename=spi-avoid-spidev-crash-when-device-is-removed.patch
+Content-Length: 2445
+Lines: 64
+
+2.6.27-stable review patch.  If anyone has any objections, please let us know.
+
+------------------
+
+From: Wolfgang Ocker <weo@reccoware.de>
+
+commit aaacf4bb51b243875b203e6ff73b5047636b4efa upstream.
+
+I saw a kernel oops in spidev_remove() when a spidev device was registered
+and I unloaded the SPI master driver:
+
+Unable to handle kernel paging request for data at address 0x00000004
+Faulting instruction address: 0xc01c0c50
+Oops: Kernel access of bad area, sig: 11 [#1]
+CDSPR
+Modules linked in: spi_ppc4xx(-)
+NIP: c01c0c50 LR: c01bf9e4 CTR: c01c0c34
+REGS: cec89c30 TRAP: 0300   Not tainted  (2.6.27.3izt)
+MSR: 00021000 <ME>  CR: 24000228  XER: 20000007
+DEAR: 00000004, ESR: 00800000
+TASK = cf889040[2070] 'rmmod' THREAD: cec88000
+GPR00: 00000000 cec89ce0 cf889040 cec8e000 00000004 cec8e000 ffffffff 00000000
+GPR08: 0000001c c0336380 00000000 c01c0c34 00000001 1001a338 100e0000 100df49c
+GPR16: 100b54c0 100df49c 100ddd20 100f05a8 100b5340 100efd68 00000000 00000000
+GPR24: 100ec008 100f0428 c0327788 c0327794 cec8e0ac cec8e000 c0336380 00000000
+NIP [c01c0c50] spidev_remove+0x1c/0xe4
+LR [c01bf9e4] spi_drv_remove+0x2c/0x3c
+Call Trace:
+[cec89d00] [c01bf9e4] spi_drv_remove+0x2c/0x3c
+[cec89d10] [c01859a0] __device_release_driver+0x78/0xb4
+[cec89d20] [c0185ab0] device_release_driver+0x28/0x44
+[cec89d40] [c0184be8] bus_remove_device+0xac/0xd8
+[cec89d60] [c0183094] device_del+0x100/0x194
+[cec89d80] [c0183140] device_unregister+0x18/0x30
+[cec89da0] [c01bf30c] __unregister+0x20/0x34
+[cec89db0] [c0182778] device_for_each_child+0x38/0x74
+[cec89de0] [c01bf2d0] spi_unregister_master+0x28/0x44
+[cec89e00] [c01bfeac] spi_bitbang_stop+0x1c/0x58
+[cec89e20] [d908a5e0] spi_ppc4xx_of_remove+0x24/0x7c [spi_ppc4xx]
+[...]
+
+IMHO a call to spi_set_drvdata() is missing in spidev_probe(). The patch
+below helped.
+
+Signed-off-by: Wolfgang Ocker <weo@reccoware.de>
+Signed-off-by: David Brownell <dbrownell@users.sourceforge.net>
+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/spi/spidev.c |    4 +++-
+ 1 file changed, 3 insertions(+), 1 deletion(-)
+
+--- a/drivers/spi/spidev.c
++++ b/drivers/spi/spidev.c
+@@ -598,7 +598,9 @@ static int spidev_probe(struct spi_devic
+       }
+       mutex_unlock(&device_list_lock);
+-      if (status != 0)
++      if (status == 0)
++              spi_set_drvdata(spi, spidev);
++      else
+               kfree(spidev);
+       return status;
+
+
+From gregkh@mini.kroah.org Thu Dec 11 11:04:36 2008
+Message-Id: <20081211190436.776537392@mini.kroah.org>
+User-Agent: quilt/0.47-1
+Date: Thu, 11 Dec 2008 11:02:20 -0800
+From: Greg KH <gregkh@suse.de>
+To: linux-kernel@vger.kernel.org,
+ stable@kernel.org
+Cc: Justin Forbes <jmforbes@linuxtx.org>,
+ Zwane Mwaikambo <zwane@arm.linux.org.uk>,
+ Theodore Ts'o <tytso@mit.edu>,
+ Randy Dunlap <rdunlap@xenotime.net>,
+ Dave Jones <davej@redhat.com>,
+ Chuck Wolber <chuckw@quantumlinux.com>,
+ Chris Wedgwood <reviews@ml.cw.f00f.org>,
+ Michael Krufky <mkrufky@linuxtv.org>,
+ Chuck Ebbert <cebbert@redhat.com>,
+ Domenico Andreoli <cavokz@gmail.com>,
+ Willy Tarreau <w@1wt.eu>,
+ Rodrigo Rubira Branco <rbranco@la.checkpoint.com>,
+ Jake Edge <jake@lwn.net>,
+ Eugene Teo <eteo@redhat.com>,
+ torvalds@linux-foundation.org,
+ akpm@linux-foundation.org,
+ alan@lxorguk.ukuu.org.uk,
+ Chas Williams <chas@cmf.nrl.navy.mil>,
+ "David S. Miller" <davem@davemloft.net>
+Subject: [patch 19/83] ATM: CVE-2008-5079: duplicate listen() on socket corrupts the vcc table
+References: <20081211190201.612240183@mini.kroah.org>
+Content-Disposition: inline; filename=atm-cve-2008-5079-duplicate-listen-on-socket-corrupts-the-vcc-table.patch
+Content-Length: 1274
+Lines: 39
+
+2.6.27-stable review patch.  If anyone has any objections, please let us know.
+
+------------------
+
+From: Chas Williams <chas@cmf.nrl.navy.mil>
+
+commit 17b24b3c97498935a2ef9777370b1151dfed3f6f upstream.
+
+As reported by Hugo Dias that it is possible to cause a local denial
+of service attack by calling the svc_listen function twice on the same
+socket and reading /proc/net/atm/*vc
+
+Signed-off-by: Chas Williams <chas@cmf.nrl.navy.mil>
+Signed-off-by: David S. Miller <davem@davemloft.net>
+Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
+
+---
+ net/atm/svc.c |    6 +++++-
+ 1 file changed, 5 insertions(+), 1 deletion(-)
+
+--- a/net/atm/svc.c
++++ b/net/atm/svc.c
+@@ -293,7 +293,10 @@ static int svc_listen(struct socket *soc
+               error = -EINVAL;
+               goto out;
+       }
+-      vcc_insert_socket(sk);
++      if (test_bit(ATM_VF_LISTEN, &vcc->flags)) {
++              error = -EADDRINUSE;
++              goto out;
++        }
+       set_bit(ATM_VF_WAITING, &vcc->flags);
+       prepare_to_wait(sk->sk_sleep, &wait, TASK_UNINTERRUPTIBLE);
+       sigd_enq(vcc,as_listen,NULL,NULL,&vcc->local);
+@@ -307,6 +310,7 @@ static int svc_listen(struct socket *soc
+               goto out;
+       }
+       set_bit(ATM_VF_LISTEN,&vcc->flags);
++      vcc_insert_socket(sk);
+       sk->sk_max_ack_backlog = backlog > 0 ? backlog : ATM_BACKLOG_DEFAULT;
+       error = -sk->sk_err;
+ out:
+
+
+From gregkh@mini.kroah.org Thu Dec 11 11:04:37 2008
+Message-Id: <20081211190437.025210407@mini.kroah.org>
+User-Agent: quilt/0.47-1
+Date: Thu, 11 Dec 2008 11:02:21 -0800
+From: Greg KH <gregkh@suse.de>
+To: linux-kernel@vger.kernel.org,
+ stable@kernel.org
+Cc: Justin Forbes <jmforbes@linuxtx.org>,
+ Zwane Mwaikambo <zwane@arm.linux.org.uk>,
+ Theodore Ts'o <tytso@mit.edu>,
+ Randy Dunlap <rdunlap@xenotime.net>,
+ Dave Jones <davej@redhat.com>,
+ Chuck Wolber <chuckw@quantumlinux.com>,
+ Chris Wedgwood <reviews@ml.cw.f00f.org>,
+ Michael Krufky <mkrufky@linuxtv.org>,
+ Chuck Ebbert <cebbert@redhat.com>,
+ Domenico Andreoli <cavokz@gmail.com>,
+ Willy Tarreau <w@1wt.eu>,
+ Rodrigo Rubira Branco <rbranco@la.checkpoint.com>,
+ Jake Edge <jake@lwn.net>,
+ Eugene Teo <eteo@redhat.com>,
+ torvalds@linux-foundation.org,
+ akpm@linux-foundation.org,
+ alan@lxorguk.ukuu.org.uk,
+ Arnd Bergmann <arnd@arndb.de>,
+ Paul Mackerras <paulus@samba.org>
+Subject: [patch 20/83] powerpc/mpic: Dont reset affinity for secondary MPIC on boot
+References: <20081211190201.612240183@mini.kroah.org>
+Content-Disposition: inline; filename=powerpc-mpic-don-t-reset-affinity-for-secondary-mpic-on-boot.patch
+Content-Length: 2164
+Lines: 61
+
+2.6.27-stable review patch.  If anyone has any objections, please let us know.
+
+------------------
+
+From: Arnd Bergmann <arnd@arndb.de>
+
+commit cc353c30bbdb84f4317a6c149ebb11cde2232e40 upstream.
+
+Kexec/kdump currently fails on the IBM QS2x blades when the kexec happens
+on a CPU other than the initial boot CPU.  It turns out that this is the
+result of mpic_init trying to set affinity of each interrupt vector to the
+current boot CPU.
+
+As far as I can tell,  the same problem is likely to exist on any
+secondary MPIC, because they have to deliver interrupts to the first
+output all the time. There are two potential solutions for this: either
+not set up affinity at all for secondary MPICs, or assume that a single
+CPU output is connected to the upstream interrupt controller and hardcode
+affinity to that per architecture.
+
+This patch implements the second approach, defaulting to the first output.
+Currently, all known secondary MPICs are routed to their upstream port
+using the first destination, so we hardcode that.
+
+Signed-off-by: Arnd Bergmann <arnd@arndb.de>
+Signed-off-by: Paul Mackerras <paulus@samba.org>
+Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
+
+---
+ arch/powerpc/sysdev/mpic.c |    9 +++++++--
+ 1 file changed, 7 insertions(+), 2 deletions(-)
+
+--- a/arch/powerpc/sysdev/mpic.c
++++ b/arch/powerpc/sysdev/mpic.c
+@@ -1271,6 +1271,7 @@ void __init mpic_set_default_senses(stru
+ void __init mpic_init(struct mpic *mpic)
+ {
+       int i;
++      int cpu;
+       BUG_ON(mpic->num_sources == 0);
+@@ -1313,6 +1314,11 @@ void __init mpic_init(struct mpic *mpic)
+       mpic_pasemi_msi_init(mpic);
++      if (mpic->flags & MPIC_PRIMARY)
++              cpu = hard_smp_processor_id();
++      else
++              cpu = 0;
++
+       for (i = 0; i < mpic->num_sources; i++) {
+               /* start with vector = source number, and masked */
+               u32 vecpri = MPIC_VECPRI_MASK | i |
+@@ -1323,8 +1329,7 @@ void __init mpic_init(struct mpic *mpic)
+                       continue;
+               /* init hw */
+               mpic_irq_write(i, MPIC_INFO(IRQ_VECTOR_PRI), vecpri);
+-              mpic_irq_write(i, MPIC_INFO(IRQ_DESTINATION),
+-                             1 << hard_smp_processor_id());
++              mpic_irq_write(i, MPIC_INFO(IRQ_DESTINATION), 1 << cpu);
+       }
+       
+       /* Init spurious vector */
+
+
+From gregkh@mini.kroah.org Thu Dec 11 11:04:37 2008
+Message-Id: <20081211190437.195929172@mini.kroah.org>
+User-Agent: quilt/0.47-1
+Date: Thu, 11 Dec 2008 11:02:22 -0800
+From: Greg KH <gregkh@suse.de>
+To: linux-kernel@vger.kernel.org,
+ stable@kernel.org
+Cc: Justin Forbes <jmforbes@linuxtx.org>,
+ Zwane Mwaikambo <zwane@arm.linux.org.uk>,
+ Theodore Ts'o <tytso@mit.edu>,
+ Randy Dunlap <rdunlap@xenotime.net>,
+ Dave Jones <davej@redhat.com>,
+ Chuck Wolber <chuckw@quantumlinux.com>,
+ Chris Wedgwood <reviews@ml.cw.f00f.org>,
+ Michael Krufky <mkrufky@linuxtv.org>,
+ Chuck Ebbert <cebbert@redhat.com>,
+ Domenico Andreoli <cavokz@gmail.com>,
+ Willy Tarreau <w@1wt.eu>,
+ Rodrigo Rubira Branco <rbranco@la.checkpoint.com>,
+ Jake Edge <jake@lwn.net>,
+ Eugene Teo <eteo@redhat.com>,
+ torvalds@linux-foundation.org,
+ akpm@linux-foundation.org,
+ alan@lxorguk.ukuu.org.uk,
+ Colin B Macdonald <cbm@m.fsf.org>,
+ Dmitry Torokhov <dtor@mail.ru>
+Subject: [patch 21/83] Input: i8042 - add Thinkpad R31 to nomux list
+References: <20081211190201.612240183@mini.kroah.org>
+Content-Disposition: inline; filename=input-i8042-add-thinkpad-r31-to-nomux-list.patch
+Content-Length: 1013
+Lines: 34
+
+2.6.27-stable review patch.  If anyone has any objections, please let us know.
+
+------------------
+
+From: Colin B Macdonald <cbm@m.fsf.org>
+
+commit 5bd8a05e937b3ab88cd7ea569e32738f36c42bd0 upstream.
+
+Thinkpad R31 needs i8042 nomux quirk.  Stops jittery jumping mouse
+and random keyboard input. Fixes kernel bug #11723.  Cherry picked
+from Ubuntu who have sometimes (on-again-off-again) had a fix in
+their patched kernels.
+
+Signed-off-by: Colin B Macdonald <cbm@m.fsf.org>
+Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
+Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
+
+---
+ drivers/input/serio/i8042-x86ia64io.h |    7 +++++++
+ 1 file changed, 7 insertions(+)
+
+--- a/drivers/input/serio/i8042-x86ia64io.h
++++ b/drivers/input/serio/i8042-x86ia64io.h
+@@ -322,6 +322,13 @@ static struct dmi_system_id __initdata i
+                       DMI_MATCH(DMI_PRODUCT_NAME, "N34AS6"),
+               },
+       },
++      {
++              .ident = "IBM 2656",
++              .matches = {
++                      DMI_MATCH(DMI_SYS_VENDOR, "IBM"),
++                      DMI_MATCH(DMI_PRODUCT_NAME, "2656"),
++              },
++      },
+       { }
+ };
+
+
+From gregkh@mini.kroah.org Thu Dec 11 11:04:37 2008
+Message-Id: <20081211190437.380226618@mini.kroah.org>
+User-Agent: quilt/0.47-1
+Date: Thu, 11 Dec 2008 11:02:23 -0800
+From: Greg KH <gregkh@suse.de>
+To: linux-kernel@vger.kernel.org,
+ stable@kernel.org
+Cc: Justin Forbes <jmforbes@linuxtx.org>,
+ Zwane Mwaikambo <zwane@arm.linux.org.uk>,
+ Theodore Ts'o <tytso@mit.edu>,
+ Randy Dunlap <rdunlap@xenotime.net>,
+ Dave Jones <davej@redhat.com>,
+ Chuck Wolber <chuckw@quantumlinux.com>,
+ Chris Wedgwood <reviews@ml.cw.f00f.org>,
+ Michael Krufky <mkrufky@linuxtv.org>,
+ Chuck Ebbert <cebbert@redhat.com>,
+ Domenico Andreoli <cavokz@gmail.com>,
+ Willy Tarreau <w@1wt.eu>,
+ Rodrigo Rubira Branco <rbranco@la.checkpoint.com>,
+ Jake Edge <jake@lwn.net>,
+ Eugene Teo <eteo@redhat.com>,
+ torvalds@linux-foundation.org,
+ akpm@linux-foundation.org,
+ alan@lxorguk.ukuu.org.uk,
+ Stefan Bader <stefan.bader@canonical.com>,
+ Dmitry Torokhov <dtor@mail.ru>
+Subject: [patch 22/83] Input: i8042 - add Blue FB5601 to noloop exception table
+References: <20081211190201.612240183@mini.kroah.org>
+Content-Disposition: inline; filename=input-i8042-add-blue-fb5601-to-noloop-exception-table.patch
+Content-Length: 856
+Lines: 30
+
+2.6.27-stable review patch.  If anyone has any objections, please let us know.
+
+------------------
+
+From: Stefan Bader <stefan.bader@canonical.com>
+
+commit 2c6f2cb83b239b7d45da9246cafd27ee615ee35b upstream.
+
+Signed-off-by: Stefan Bader <stefan.bader@canonical.com>
+Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
+Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
+
+---
+ drivers/input/serio/i8042-x86ia64io.h |    8 ++++++++
+ 1 file changed, 8 insertions(+)
+
+--- a/drivers/input/serio/i8042-x86ia64io.h
++++ b/drivers/input/serio/i8042-x86ia64io.h
+@@ -135,6 +135,14 @@ static struct dmi_system_id __initdata i
+                       DMI_MATCH(DMI_PRODUCT_VERSION, "5a"),
+               },
+       },
++      {
++              .ident = "Blue FB5601",
++              .matches = {
++                      DMI_MATCH(DMI_SYS_VENDOR, "blue"),
++                      DMI_MATCH(DMI_PRODUCT_NAME, "FB5601"),
++                      DMI_MATCH(DMI_PRODUCT_VERSION, "M606"),
++              },
++      },
+       { }
+ };
+
+
+From gregkh@mini.kroah.org Thu Dec 11 11:04:37 2008
+Message-Id: <20081211190437.555109319@mini.kroah.org>
+User-Agent: quilt/0.47-1
+Date: Thu, 11 Dec 2008 11:02:24 -0800
+From: Greg KH <gregkh@suse.de>
+To: linux-kernel@vger.kernel.org,
+ stable@kernel.org
+Cc: Justin Forbes <jmforbes@linuxtx.org>,
+ Zwane Mwaikambo <zwane@arm.linux.org.uk>,
+ Theodore Ts'o <tytso@mit.edu>,
+ Randy Dunlap <rdunlap@xenotime.net>,
+ Dave Jones <davej@redhat.com>,
+ Chuck Wolber <chuckw@quantumlinux.com>,
+ Chris Wedgwood <reviews@ml.cw.f00f.org>,
+ Michael Krufky <mkrufky@linuxtv.org>,
+ Chuck Ebbert <cebbert@redhat.com>,
+ Domenico Andreoli <cavokz@gmail.com>,
+ Willy Tarreau <w@1wt.eu>,
+ Rodrigo Rubira Branco <rbranco@la.checkpoint.com>,
+ Jake Edge <jake@lwn.net>,
+ Eugene Teo <eteo@redhat.com>,
+ torvalds@linux-foundation.org,
+ akpm@linux-foundation.org,
+ alan@lxorguk.ukuu.org.uk,
+ Herton Ronaldo Krzesinski <herton@mandriva.com.br>,
+ Dmitry Torokhov <dtor@mail.ru>
+Subject: [patch 23/83] Input: i8042 - add Dell XPS M1530 to nomux list
+References: <20081211190201.612240183@mini.kroah.org>
+Content-Disposition: inline; filename=input-i8042-add-dell-xps-m1530-to-nomux-list.patch
+Content-Length: 1168
+Lines: 37
+
+2.6.27-stable review patch.  If anyone has any objections, please let us know.
+
+------------------
+
+From: Herton Ronaldo Krzesinski <herton@mandriva.com.br>
+
+commit 786b11cc0f505e44c29f778fd329dafafafed76c upstream.
+
+Dell XPS M1530 needs i8042.nomux=1 for ALPS touchpad to work as
+reported on https://qa.mandriva.com/show_bug.cgi?id=43532
+
+It is said that before A08 bios version this isn't needed (I don't
+have the hardware so can't check), and suppose this will not break
+with bios versions before A08.
+
+Signed-off-by: Herton Ronaldo Krzesinski <herton@mandriva.com.br>
+Tested-by: Andreas Ericsson <ae@op5.se>
+Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
+Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
+
+---
+ drivers/input/serio/i8042-x86ia64io.h |    7 +++++++
+ 1 file changed, 7 insertions(+)
+
+--- a/drivers/input/serio/i8042-x86ia64io.h
++++ b/drivers/input/serio/i8042-x86ia64io.h
+@@ -337,6 +337,13 @@ static struct dmi_system_id __initdata i
+                       DMI_MATCH(DMI_PRODUCT_NAME, "2656"),
+               },
+       },
++      {
++              .ident = "Dell XPS M1530",
++              .matches = {
++                      DMI_MATCH(DMI_SYS_VENDOR, "Dell Inc."),
++                      DMI_MATCH(DMI_PRODUCT_NAME, "XPS M1530"),
++              },
++      },
+       { }
+ };
+
+
+From gregkh@mini.kroah.org Thu Dec 11 11:04:37 2008
+Message-Id: <20081211190437.749444213@mini.kroah.org>
+User-Agent: quilt/0.47-1
+Date: Thu, 11 Dec 2008 11:02:25 -0800
+From: Greg KH <gregkh@suse.de>
+To: linux-kernel@vger.kernel.org,
+ stable@kernel.org
+Cc: Justin Forbes <jmforbes@linuxtx.org>,
+ Zwane Mwaikambo <zwane@arm.linux.org.uk>,
+ Theodore Ts'o <tytso@mit.edu>,
+ Randy Dunlap <rdunlap@xenotime.net>,
+ Dave Jones <davej@redhat.com>,
+ Chuck Wolber <chuckw@quantumlinux.com>,
+ Chris Wedgwood <reviews@ml.cw.f00f.org>,
+ Michael Krufky <mkrufky@linuxtv.org>,
+ Chuck Ebbert <cebbert@redhat.com>,
+ Domenico Andreoli <cavokz@gmail.com>,
+ Willy Tarreau <w@1wt.eu>,
+ Rodrigo Rubira Branco <rbranco@la.checkpoint.com>,
+ Jake Edge <jake@lwn.net>,
+ Eugene Teo <eteo@redhat.com>,
+ torvalds@linux-foundation.org,
+ akpm@linux-foundation.org,
+ alan@lxorguk.ukuu.org.uk,
+ Dmitry Torokhov <dtor@mail.ru>
+Subject: [patch 24/83] Input: i8042 - add Compal Hel80 laptop to nomux blacklist
+References: <20081211190201.612240183@mini.kroah.org>
+Content-Disposition: inline; filename=input-i8042-add-compal-hel80-laptop-to-nomux-blacklist.patch
+Content-Length: 808
+Lines: 29
+
+2.6.27-stable review patch.  If anyone has any objections, please let us know.
+
+------------------
+
+From: Dmitry Torokhov <dmitry.torokhov@gmail.com>
+
+commit 5f4ba04ffd8fc9f6b15b92270ef0517ae52dcf3a upstream.
+
+Reported-by: Jaime Cura <jimyx17@gmail.com>
+Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
+Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
+
+---
+ drivers/input/serio/i8042-x86ia64io.h |    7 +++++++
+ 1 file changed, 7 insertions(+)
+
+--- a/drivers/input/serio/i8042-x86ia64io.h
++++ b/drivers/input/serio/i8042-x86ia64io.h
+@@ -344,6 +344,13 @@ static struct dmi_system_id __initdata i
+                       DMI_MATCH(DMI_PRODUCT_NAME, "XPS M1530"),
+               },
+       },
++      {
++              .ident = "Compal HEL80I",
++              .matches = {
++                      DMI_MATCH(DMI_SYS_VENDOR, "COMPAL"),
++                      DMI_MATCH(DMI_PRODUCT_NAME, "HEL80I"),
++              },
++      },
+       { }
+ };
+
+
+From gregkh@mini.kroah.org Thu Dec 11 11:04:38 2008
+Message-Id: <20081211190437.933757931@mini.kroah.org>
+User-Agent: quilt/0.47-1
+Date: Thu, 11 Dec 2008 11:02:26 -0800
+From: Greg KH <gregkh@suse.de>
+To: linux-kernel@vger.kernel.org,
+ stable@kernel.org
+Cc: Justin Forbes <jmforbes@linuxtx.org>,
+ Zwane Mwaikambo <zwane@arm.linux.org.uk>,
+ Theodore Ts'o <tytso@mit.edu>,
+ Randy Dunlap <rdunlap@xenotime.net>,
+ Dave Jones <davej@redhat.com>,
+ Chuck Wolber <chuckw@quantumlinux.com>,
+ Chris Wedgwood <reviews@ml.cw.f00f.org>,
+ Michael Krufky <mkrufky@linuxtv.org>,
+ Chuck Ebbert <cebbert@redhat.com>,
+ Domenico Andreoli <cavokz@gmail.com>,
+ Willy Tarreau <w@1wt.eu>,
+ Rodrigo Rubira Branco <rbranco@la.checkpoint.com>,
+ Jake Edge <jake@lwn.net>,
+ Eugene Teo <eteo@redhat.com>,
+ torvalds@linux-foundation.org,
+ akpm@linux-foundation.org,
+ alan@lxorguk.ukuu.org.uk,
+ Arnd Bergmann <arnd@arndb.de>,
+ Jens Osterkamp <jens@linux.vnet.ibm.com>,
+ Benjamin Herrenschmidt <benh@kernel.crashing.org>,
+ Doug Thompson <dougthompson@xmission.com>
+Subject: [patch 25/83] edac: fix enabling of polling cell module
+References: <20081211190201.612240183@mini.kroah.org>
+Content-Disposition: inline; filename=edac-fix-enabling-of-polling-cell-module.patch
+Content-Length: 1317
+Lines: 40
+
+2.6.27-stable review patch.  If anyone has any objections, please let us know.
+
+------------------
+
+From: Benjamin Herrenschmidt <benh@kernel.crashing.org>
+
+commit 992b692dcf43612be805465ca4b76f434c715023 upstream.
+
+The edac driver on cell turned out to be not enabled because of a missing
+op_state.  This patch introduces it.  Verified to work on top of Ben's
+next branch.
+
+Signed-off-by: Arnd Bergmann <arnd@arndb.de>
+Signed-off-by: Jens Osterkamp <jens@linux.vnet.ibm.com>
+Acked-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
+Signed-off-by: Doug Thompson <dougthompson@xmission.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/edac/cell_edac.c |    3 +++
+ 1 file changed, 3 insertions(+)
+
+--- a/drivers/edac/cell_edac.c
++++ b/drivers/edac/cell_edac.c
+@@ -9,6 +9,7 @@
+  */
+ #undef DEBUG
++#include <linux/edac.h>
+ #include <linux/module.h>
+ #include <linux/init.h>
+ #include <linux/platform_device.h>
+@@ -164,6 +165,8 @@ static int __devinit cell_edac_probe(str
+       if (regs == NULL)
+               return -ENODEV;
++      edac_op_state = EDAC_OPSTATE_POLL;
++
+       /* Get channel population */
+       reg = in_be64(&regs->mic_mnt_cfg);
+       dev_dbg(&pdev->dev, "MIC_MNT_CFG = 0x%016lx\n", reg);
+
+
+From gregkh@mini.kroah.org Thu Dec 11 11:04:38 2008
+Message-Id: <20081211190438.119750914@mini.kroah.org>
+User-Agent: quilt/0.47-1
+Date: Thu, 11 Dec 2008 11:02:27 -0800
+From: Greg KH <gregkh@suse.de>
+To: linux-kernel@vger.kernel.org,
+ stable@kernel.org
+Cc: Justin Forbes <jmforbes@linuxtx.org>,
+ Zwane Mwaikambo <zwane@arm.linux.org.uk>,
+ Theodore Ts'o <tytso@mit.edu>,
+ Randy Dunlap <rdunlap@xenotime.net>,
+ Dave Jones <davej@redhat.com>,
+ Chuck Wolber <chuckw@quantumlinux.com>,
+ Chris Wedgwood <reviews@ml.cw.f00f.org>,
+ Michael Krufky <mkrufky@linuxtv.org>,
+ Chuck Ebbert <cebbert@redhat.com>,
+ Domenico Andreoli <cavokz@gmail.com>,
+ Willy Tarreau <w@1wt.eu>,
+ Rodrigo Rubira Branco <rbranco@la.checkpoint.com>,
+ Jake Edge <jake@lwn.net>,
+ Eugene Teo <eteo@redhat.com>,
+ torvalds@linux-foundation.org,
+ akpm@linux-foundation.org,
+ alan@lxorguk.ukuu.org.uk,
+ Dan Williams <dcbw@redhat.com>
+Subject: [patch 26/83] USB: option: add Ericsson F3507g and Dell 5530
+References: <20081211190201.612240183@mini.kroah.org>
+Content-Disposition: inline; filename=usb-option-add-ericsson-f3507g-and-dell-5530.patch
+Content-Length: 1894
+Lines: 42
+
+2.6.27-stable review patch.  If anyone has any objections, please let us know.
+
+------------------
+
+From: Dan Williams <dcbw@redhat.com>
+
+commit b064eca9b0cdbb2b8f731ae2e44fa02194a1219a upstream.
+
+Add a few more mobile broadband cards.
+
+Signed-off-by: Dan Williams <dcbw@redhat.com>
+Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
+---
+ drivers/usb/serial/option.c |    6 ++++++
+ 1 file changed, 6 insertions(+)
+
+--- a/drivers/usb/serial/option.c
++++ b/drivers/usb/serial/option.c
+@@ -220,6 +220,10 @@ static int  option_send_setup(struct tty
+ #define ZTE_PRODUCT_MF628                     0x0015
+ #define ZTE_PRODUCT_CDMA_TECH                 0xfffe
++/* Ericsson products */
++#define ERICSSON_VENDOR_ID                    0x0bdb
++#define ERICSSON_PRODUCT_F3507G                       0x1900
++
+ static struct usb_device_id option_ids[] = {
+       { USB_DEVICE(OPTION_VENDOR_ID, OPTION_PRODUCT_COLT) },
+       { USB_DEVICE(OPTION_VENDOR_ID, OPTION_PRODUCT_RICOLA) },
+@@ -318,6 +322,7 @@ static struct usb_device_id option_ids[]
+       { USB_DEVICE(DELL_VENDOR_ID, 0x8136) }, /* Dell Wireless HSDPA 5520 == Novatel Expedite EU860D */
+       { USB_DEVICE(DELL_VENDOR_ID, 0x8137) }, /* Dell Wireless HSDPA 5520 */
+       { USB_DEVICE(DELL_VENDOR_ID, 0x8138) }, /* Dell Wireless 5520 Voda I Mobile Broadband (3G HSDPA) Minicard */
++      { USB_DEVICE(DELL_VENDOR_ID, 0x8147) }, /* Dell Wireless 5530 Mobile Broadband (3G HSPA) Mini-Card */
+       { USB_DEVICE(ANYDATA_VENDOR_ID, ANYDATA_PRODUCT_ADU_E100A) },
+       { USB_DEVICE(ANYDATA_VENDOR_ID, ANYDATA_PRODUCT_ADU_500A) },
+       { USB_DEVICE(ANYDATA_VENDOR_ID, ANYDATA_PRODUCT_ADU_620UW) },
+@@ -349,6 +354,7 @@ static struct usb_device_id option_ids[]
+       { USB_DEVICE(TELIT_VENDOR_ID, TELIT_PRODUCT_UC864E) },
+       { USB_DEVICE(ZTE_VENDOR_ID, ZTE_PRODUCT_MF628) },
+       { USB_DEVICE(ZTE_VENDOR_ID, ZTE_PRODUCT_CDMA_TECH) },
++      { USB_DEVICE(ERICSSON_VENDOR_ID, ERICSSON_PRODUCT_F3507G) },
+       { } /* Terminating entry */
+ };
+ MODULE_DEVICE_TABLE(usb, option_ids);
+
+
+From gregkh@mini.kroah.org Thu Dec 11 11:04:38 2008
+Message-Id: <20081211190438.296652238@mini.kroah.org>
+User-Agent: quilt/0.47-1
+Date: Thu, 11 Dec 2008 11:02:28 -0800
+From: Greg KH <gregkh@suse.de>
+To: linux-kernel@vger.kernel.org,
+ stable@kernel.org
+Cc: Justin Forbes <jmforbes@linuxtx.org>,
+ Zwane Mwaikambo <zwane@arm.linux.org.uk>,
+ Theodore Ts'o <tytso@mit.edu>,
+ Randy Dunlap <rdunlap@xenotime.net>,
+ Dave Jones <davej@redhat.com>,
+ Chuck Wolber <chuckw@quantumlinux.com>,
+ Chris Wedgwood <reviews@ml.cw.f00f.org>,
+ Michael Krufky <mkrufky@linuxtv.org>,
+ Chuck Ebbert <cebbert@redhat.com>,
+ Domenico Andreoli <cavokz@gmail.com>,
+ Willy Tarreau <w@1wt.eu>,
+ Rodrigo Rubira Branco <rbranco@la.checkpoint.com>,
+ Jake Edge <jake@lwn.net>,
+ Eugene Teo <eteo@redhat.com>,
+ torvalds@linux-foundation.org,
+ akpm@linux-foundation.org,
+ alan@lxorguk.ukuu.org.uk,
+ Denis Joseph Barrow <D.Barow@option.com>
+Subject: [patch 27/83] USB: option.c remove duplicate device ids now supported in hso.c
+References: <20081211190201.612240183@mini.kroah.org>
+Content-Disposition: inline; filename=usb-option.c-remove-duplicate-device-ids-now-supported-in-hso.c.patch
+Content-Length: 3730
+Lines: 71
+
+2.6.27-stable review patch.  If anyone has any objections, please let us know.
+
+------------------
+
+From: Denis Joseph Barrow <D.Barow@option.com>
+
+commit 631556a0763ac155c82bbcbeed7e4b28bd737927 upstream.
+
+Remove duplicate device ids which are now supported by drivers/usb/net/hso.c
+
+Signed-off-by: Denis Joseph Barrow <D.Barow@option.com>
+Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
+---
+ drivers/usb/serial/option.c |   22 ----------------------
+ 1 file changed, 22 deletions(-)
+
+--- a/drivers/usb/serial/option.c
++++ b/drivers/usb/serial/option.c
+@@ -79,27 +79,16 @@ static int  option_send_setup(struct tty
+ #define OPTION_PRODUCT_VIPER                  0x6600
+ #define OPTION_PRODUCT_VIPER_BUS              0x6601
+ #define OPTION_PRODUCT_GT_MAX_READY           0x6701
+-#define OPTION_PRODUCT_GT_MAX                 0x6711
+ #define OPTION_PRODUCT_FUJI_MODEM_LIGHT               0x6721
+ #define OPTION_PRODUCT_FUJI_MODEM_GT          0x6741
+ #define OPTION_PRODUCT_FUJI_MODEM_EX          0x6761
+-#define OPTION_PRODUCT_FUJI_NETWORK_LIGHT     0x6731
+-#define OPTION_PRODUCT_FUJI_NETWORK_GT                0x6751
+-#define OPTION_PRODUCT_FUJI_NETWORK_EX                0x6771
+ #define OPTION_PRODUCT_KOI_MODEM              0x6800
+-#define OPTION_PRODUCT_KOI_NETWORK            0x6811
+ #define OPTION_PRODUCT_SCORPION_MODEM         0x6901
+-#define OPTION_PRODUCT_SCORPION_NETWORK               0x6911
+ #define OPTION_PRODUCT_ETNA_MODEM             0x7001
+-#define OPTION_PRODUCT_ETNA_NETWORK           0x7011
+ #define OPTION_PRODUCT_ETNA_MODEM_LITE                0x7021
+ #define OPTION_PRODUCT_ETNA_MODEM_GT          0x7041
+ #define OPTION_PRODUCT_ETNA_MODEM_EX          0x7061
+-#define OPTION_PRODUCT_ETNA_NETWORK_LITE      0x7031
+-#define OPTION_PRODUCT_ETNA_NETWORK_GT                0x7051
+-#define OPTION_PRODUCT_ETNA_NETWORK_EX                0x7071
+ #define OPTION_PRODUCT_ETNA_KOI_MODEM         0x7100
+-#define OPTION_PRODUCT_ETNA_KOI_NETWORK               0x7111
+ #define HUAWEI_VENDOR_ID                      0x12D1
+ #define HUAWEI_PRODUCT_E600                   0x1001
+@@ -239,27 +228,16 @@ static struct usb_device_id option_ids[]
+       { USB_DEVICE(OPTION_VENDOR_ID, OPTION_PRODUCT_VIPER) },
+       { USB_DEVICE(OPTION_VENDOR_ID, OPTION_PRODUCT_VIPER_BUS) },
+       { USB_DEVICE(OPTION_VENDOR_ID, OPTION_PRODUCT_GT_MAX_READY) },
+-      { USB_DEVICE(OPTION_VENDOR_ID, OPTION_PRODUCT_GT_MAX) },
+       { USB_DEVICE(OPTION_VENDOR_ID, OPTION_PRODUCT_FUJI_MODEM_LIGHT) },
+       { USB_DEVICE(OPTION_VENDOR_ID, OPTION_PRODUCT_FUJI_MODEM_GT) },
+       { USB_DEVICE(OPTION_VENDOR_ID, OPTION_PRODUCT_FUJI_MODEM_EX) },
+-      { USB_DEVICE(OPTION_VENDOR_ID, OPTION_PRODUCT_FUJI_NETWORK_LIGHT) },
+-      { USB_DEVICE(OPTION_VENDOR_ID, OPTION_PRODUCT_FUJI_NETWORK_GT) },
+-      { USB_DEVICE(OPTION_VENDOR_ID, OPTION_PRODUCT_FUJI_NETWORK_EX) },
+       { USB_DEVICE(OPTION_VENDOR_ID, OPTION_PRODUCT_KOI_MODEM) },
+-      { USB_DEVICE(OPTION_VENDOR_ID, OPTION_PRODUCT_KOI_NETWORK) },
+       { USB_DEVICE(OPTION_VENDOR_ID, OPTION_PRODUCT_SCORPION_MODEM) },
+-      { USB_DEVICE(OPTION_VENDOR_ID, OPTION_PRODUCT_SCORPION_NETWORK) },
+       { USB_DEVICE(OPTION_VENDOR_ID, OPTION_PRODUCT_ETNA_MODEM) },
+-      { USB_DEVICE(OPTION_VENDOR_ID, OPTION_PRODUCT_ETNA_NETWORK) },
+       { USB_DEVICE(OPTION_VENDOR_ID, OPTION_PRODUCT_ETNA_MODEM_LITE) },
+       { USB_DEVICE(OPTION_VENDOR_ID, OPTION_PRODUCT_ETNA_MODEM_GT) },
+       { USB_DEVICE(OPTION_VENDOR_ID, OPTION_PRODUCT_ETNA_MODEM_EX) },
+-      { USB_DEVICE(OPTION_VENDOR_ID, OPTION_PRODUCT_ETNA_NETWORK_LITE) },
+-      { USB_DEVICE(OPTION_VENDOR_ID, OPTION_PRODUCT_ETNA_NETWORK_GT) },
+-      { USB_DEVICE(OPTION_VENDOR_ID, OPTION_PRODUCT_ETNA_NETWORK_EX) },
+       { USB_DEVICE(OPTION_VENDOR_ID, OPTION_PRODUCT_ETNA_KOI_MODEM) },
+-      { USB_DEVICE(OPTION_VENDOR_ID, OPTION_PRODUCT_ETNA_KOI_NETWORK) },
+       { USB_DEVICE_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, HUAWEI_PRODUCT_E600, 0xff, 0xff, 0xff) },
+       { USB_DEVICE_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, HUAWEI_PRODUCT_E220, 0xff, 0xff, 0xff) },
+       { USB_DEVICE_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, HUAWEI_PRODUCT_E220BIS, 0xff, 0xff, 0xff) },
+
+
+From gregkh@mini.kroah.org Thu Dec 11 11:04:38 2008
+Message-Id: <20081211190438.476170166@mini.kroah.org>
+User-Agent: quilt/0.47-1
+Date: Thu, 11 Dec 2008 11:02:29 -0800
+From: Greg KH <gregkh@suse.de>
+To: linux-kernel@vger.kernel.org,
+ stable@kernel.org
+Cc: Justin Forbes <jmforbes@linuxtx.org>,
+ Zwane Mwaikambo <zwane@arm.linux.org.uk>,
+ Theodore Ts'o <tytso@mit.edu>,
+ Randy Dunlap <rdunlap@xenotime.net>,
+ Dave Jones <davej@redhat.com>,
+ Chuck Wolber <chuckw@quantumlinux.com>,
+ Chris Wedgwood <reviews@ml.cw.f00f.org>,
+ Michael Krufky <mkrufky@linuxtv.org>,
+ Chuck Ebbert <cebbert@redhat.com>,
+ Domenico Andreoli <cavokz@gmail.com>,
+ Willy Tarreau <w@1wt.eu>,
+ Rodrigo Rubira Branco <rbranco@la.checkpoint.com>,
+ Jake Edge <jake@lwn.net>,
+ Eugene Teo <eteo@redhat.com>,
+ torvalds@linux-foundation.org,
+ akpm@linux-foundation.org,
+ alan@lxorguk.ukuu.org.uk,
+ Jon K Hellan <hellan@acm.org>
+Subject: [patch 28/83] USB: Option / AnyData new modem, same ID
+References: <20081211190201.612240183@mini.kroah.org>
+Content-Disposition: inline; filename=usb-option-anydata-new-modem-same-id.patch
+Content-Length: 1239
+Lines: 24
+
+2.6.27-stable review patch.  If anyone has any objections, please let us know.
+
+------------------
+
+From: Jon K Hellan <hellan@acm.org>
+
+commit bb78a825fa91621e52b9a5409fd9ef07895275bf upstream.
+
+The AnyData ADU-310 series of wireless modems uses the same product ID as the ADU-E100 series.
+
+Signed-off-by: Jon K Hellan <hellan@acm.org>
+Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
+---
+ drivers/usb/serial/option.c |    2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+--- a/drivers/usb/serial/option.c
++++ b/drivers/usb/serial/option.c
+@@ -301,7 +301,7 @@ static struct usb_device_id option_ids[]
+       { USB_DEVICE(DELL_VENDOR_ID, 0x8137) }, /* Dell Wireless HSDPA 5520 */
+       { USB_DEVICE(DELL_VENDOR_ID, 0x8138) }, /* Dell Wireless 5520 Voda I Mobile Broadband (3G HSDPA) Minicard */
+       { USB_DEVICE(DELL_VENDOR_ID, 0x8147) }, /* Dell Wireless 5530 Mobile Broadband (3G HSPA) Mini-Card */
+-      { USB_DEVICE(ANYDATA_VENDOR_ID, ANYDATA_PRODUCT_ADU_E100A) },
++      { USB_DEVICE(ANYDATA_VENDOR_ID, ANYDATA_PRODUCT_ADU_E100A) },   /* ADU-E100, ADU-310 */
+       { USB_DEVICE(ANYDATA_VENDOR_ID, ANYDATA_PRODUCT_ADU_500A) },
+       { USB_DEVICE(ANYDATA_VENDOR_ID, ANYDATA_PRODUCT_ADU_620UW) },
+       { USB_DEVICE(AXESSTEL_VENDOR_ID, AXESSTEL_PRODUCT_MV110H) },
+
+
+From gregkh@mini.kroah.org Thu Dec 11 11:04:38 2008
+Message-Id: <20081211190438.652792824@mini.kroah.org>
+User-Agent: quilt/0.47-1
+Date: Thu, 11 Dec 2008 11:02:30 -0800
+From: Greg KH <gregkh@suse.de>
+To: linux-kernel@vger.kernel.org,
+ stable@kernel.org
+Cc: Justin Forbes <jmforbes@linuxtx.org>,
+ Zwane Mwaikambo <zwane@arm.linux.org.uk>,
+ Theodore Ts'o <tytso@mit.edu>,
+ Randy Dunlap <rdunlap@xenotime.net>,
+ Dave Jones <davej@redhat.com>,
+ Chuck Wolber <chuckw@quantumlinux.com>,
+ Chris Wedgwood <reviews@ml.cw.f00f.org>,
+ Michael Krufky <mkrufky@linuxtv.org>,
+ Chuck Ebbert <cebbert@redhat.com>,
+ Domenico Andreoli <cavokz@gmail.com>,
+ Willy Tarreau <w@1wt.eu>,
+ Rodrigo Rubira Branco <rbranco@la.checkpoint.com>,
+ Jake Edge <jake@lwn.net>,
+ Eugene Teo <eteo@redhat.com>,
+ torvalds@linux-foundation.org,
+ akpm@linux-foundation.org,
+ alan@lxorguk.ukuu.org.uk,
+ Dan Williams <dcbw@redhat.com>
+Subject: [patch 29/83] USB: option: add Pantech cards
+References: <20081211190201.612240183@mini.kroah.org>
+Content-Disposition: inline; filename=usb-option-add-pantech-cards.patch
+Content-Length: 1476
+Lines: 38
+
+2.6.27-stable review patch.  If anyone has any objections, please let us know.
+
+------------------
+
+From: Dan Williams <dcbw@redhat.com>
+
+commit 8b6346ec899713a90890c9e832f7eff91ea73504 upstream
+
+Add some Pantech mobile broadband IDs.
+
+Signed-off-by: Dan Williams <dcbw@redhat.com>
+Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
+---
+ drivers/usb/serial/option.c |    9 +++++++++
+ 1 file changed, 9 insertions(+)
+
+--- a/drivers/usb/serial/option.c
++++ b/drivers/usb/serial/option.c
+@@ -213,6 +213,12 @@ static int  option_send_setup(struct tty
+ #define ERICSSON_VENDOR_ID                    0x0bdb
+ #define ERICSSON_PRODUCT_F3507G                       0x1900
++/* Pantech products */
++#define PANTECH_VENDOR_ID                     0x106c
++#define PANTECH_PRODUCT_PC5740                        0x3701
++#define PANTECH_PRODUCT_PC5750                        0x3702  /* PX-500 */
++#define PANTECH_PRODUCT_UM150                 0x3711
++
+ static struct usb_device_id option_ids[] = {
+       { USB_DEVICE(OPTION_VENDOR_ID, OPTION_PRODUCT_COLT) },
+       { USB_DEVICE(OPTION_VENDOR_ID, OPTION_PRODUCT_RICOLA) },
+@@ -333,6 +339,9 @@ static struct usb_device_id option_ids[]
+       { USB_DEVICE(ZTE_VENDOR_ID, ZTE_PRODUCT_MF628) },
+       { USB_DEVICE(ZTE_VENDOR_ID, ZTE_PRODUCT_CDMA_TECH) },
+       { USB_DEVICE(ERICSSON_VENDOR_ID, ERICSSON_PRODUCT_F3507G) },
++      { USB_DEVICE(PANTECH_VENDOR_ID, PANTECH_PRODUCT_PC5740) },
++      { USB_DEVICE(PANTECH_VENDOR_ID, PANTECH_PRODUCT_PC5750) },
++      { USB_DEVICE(PANTECH_VENDOR_ID, PANTECH_PRODUCT_UM150) },
+       { } /* Terminating entry */
+ };
+ MODULE_DEVICE_TABLE(usb, option_ids);
+
+
+From gregkh@mini.kroah.org Thu Dec 11 11:04:39 2008
+Message-Id: <20081211190438.831959380@mini.kroah.org>
+User-Agent: quilt/0.47-1
+Date: Thu, 11 Dec 2008 11:02:31 -0800
+From: Greg KH <gregkh@suse.de>
+To: linux-kernel@vger.kernel.org,
+ stable@kernel.org
+Cc: Justin Forbes <jmforbes@linuxtx.org>,
+ Zwane Mwaikambo <zwane@arm.linux.org.uk>,
+ Theodore Ts'o <tytso@mit.edu>,
+ Randy Dunlap <rdunlap@xenotime.net>,
+ Dave Jones <davej@redhat.com>,
+ Chuck Wolber <chuckw@quantumlinux.com>,
+ Chris Wedgwood <reviews@ml.cw.f00f.org>,
+ Michael Krufky <mkrufky@linuxtv.org>,
+ Chuck Ebbert <cebbert@redhat.com>,
+ Domenico Andreoli <cavokz@gmail.com>,
+ Willy Tarreau <w@1wt.eu>,
+ Rodrigo Rubira Branco <rbranco@la.checkpoint.com>,
+ Jake Edge <jake@lwn.net>,
+ Eugene Teo <eteo@redhat.com>,
+ torvalds@linux-foundation.org,
+ akpm@linux-foundation.org,
+ alan@lxorguk.ukuu.org.uk,
+ Mikhail Gusarov <dottedmag@dottedmag.net>
+Subject: [patch 30/83] USB: add ZTE MF626 USB GSM modem entry
+References: <20081211190201.612240183@mini.kroah.org>
+Content-Disposition: inline; filename=usb-add-zte-mf626-usb-gsm-modem-entry.patch
+Content-Length: 1199
+Lines: 29
+
+2.6.27-stable review patch.  If anyone has any objections, please let us know.
+
+------------------
+
+From: Mikhail Gusarov <dottedmag@dottedmag.net>
+
+commit bfd8408d68975759aba1b466af6f5388d7adb836 upstream
+
+Signed-off-by: Mikhail Gusarov <dottedmag@dottedmag.net>
+Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
+---
+ drivers/usb/serial/option.c |    2 ++
+ 1 file changed, 2 insertions(+)
+
+--- a/drivers/usb/serial/option.c
++++ b/drivers/usb/serial/option.c
+@@ -207,6 +207,7 @@ static int  option_send_setup(struct tty
+ /* ZTE PRODUCTS */
+ #define ZTE_VENDOR_ID                         0x19d2
+ #define ZTE_PRODUCT_MF628                     0x0015
++#define ZTE_PRODUCT_MF626                     0x0031
+ #define ZTE_PRODUCT_CDMA_TECH                 0xfffe
+ /* Ericsson products */
+@@ -336,6 +337,7 @@ static struct usb_device_id option_ids[]
+       { USB_DEVICE(QUALCOMM_VENDOR_ID, 0x6613)}, /* Onda H600/ZTE MF330 */
+       { USB_DEVICE(MAXON_VENDOR_ID, 0x6280) }, /* BP3-USB & BP3-EXT HSDPA */
+       { USB_DEVICE(TELIT_VENDOR_ID, TELIT_PRODUCT_UC864E) },
++      { USB_DEVICE(ZTE_VENDOR_ID, ZTE_PRODUCT_MF626) },
+       { USB_DEVICE(ZTE_VENDOR_ID, ZTE_PRODUCT_MF628) },
+       { USB_DEVICE(ZTE_VENDOR_ID, ZTE_PRODUCT_CDMA_TECH) },
+       { USB_DEVICE(ERICSSON_VENDOR_ID, ERICSSON_PRODUCT_F3507G) },
+
+
+From gregkh@mini.kroah.org Thu Dec 11 11:04:39 2008
+Message-Id: <20081211190439.059947922@mini.kroah.org>
+User-Agent: quilt/0.47-1
+Date: Thu, 11 Dec 2008 11:02:32 -0800
+From: Greg KH <gregkh@suse.de>
+To: linux-kernel@vger.kernel.org,
+ stable@kernel.org
+Cc: Justin Forbes <jmforbes@linuxtx.org>,
+ Zwane Mwaikambo <zwane@arm.linux.org.uk>,
+ Theodore Ts'o <tytso@mit.edu>,
+ Randy Dunlap <rdunlap@xenotime.net>,
+ Dave Jones <davej@redhat.com>,
+ Chuck Wolber <chuckw@quantumlinux.com>,
+ Chris Wedgwood <reviews@ml.cw.f00f.org>,
+ Michael Krufky <mkrufky@linuxtv.org>,
+ Chuck Ebbert <cebbert@redhat.com>,
+ Domenico Andreoli <cavokz@gmail.com>,
+ Willy Tarreau <w@1wt.eu>,
+ Rodrigo Rubira Branco <rbranco@la.checkpoint.com>,
+ Jake Edge <jake@lwn.net>,
+ Eugene Teo <eteo@redhat.com>,
+ torvalds@linux-foundation.org,
+ akpm@linux-foundation.org,
+ alan@lxorguk.ukuu.org.uk,
+ fangxiaozhi <huananhu@huawei.com>,
+ Phil Dibowitz <phil@ipom.com>
+Subject: [patch 31/83] USB: support Huawei data card product IDs
+References: <20081211190201.612240183@mini.kroah.org>
+Content-Disposition: inline; filename=usb-support-huawei-data-card-product-ids.patch
+Content-Length: 10026
+Lines: 159
+
+2.6.27-stable review patch.  If anyone has any objections, please let us know.
+
+------------------
+
+From: fangxiaozhi <huananhu@huawei.com>
+
+commit 1460e5e44cc5ecad7704f63b10dcb3a59d0e008b upstream
+
+In this patch, we want to do one thing: add more Huawei product IDs into the
+USB driver. Then it can support  more Huawei data card devices. So to declare
+the unusual device for new Huawei data card devices in unusual_devs.h and to
+declare more new product IDs in option.c.
+
+To modify the data value and length in the function of
+usb_stor_huawei_e220_init in initializers.c That's because based on the USB
+standard, while sending SET_FETURE_D to the device, it requires the
+corresponding data to be zero, and its sending length also must be zero.  In
+our old solution, it can be compatible with our WCDMA data card devices, but
+can not support our CDMA data card devices.  But in this new solution, it can
+be compatible with all of our data card devices.
+
+Signed-off-by: fangxiaozhi <huananhu@huawei.com>
+Signed-off-by: Phil Dibowitz <phil@ipom.com>
+Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
+---
+ drivers/usb/serial/option.c |   94 ++++++++++++++++++++++++++++++++++++++++++++
+ 1 file changed, 94 insertions(+)
+
+--- a/drivers/usb/serial/option.c
++++ b/drivers/usb/serial/option.c
+@@ -95,11 +95,20 @@ static int  option_send_setup(struct tty
+ #define HUAWEI_PRODUCT_E220                   0x1003
+ #define HUAWEI_PRODUCT_E220BIS                        0x1004
+ #define HUAWEI_PRODUCT_E1401                  0x1401
++#define HUAWEI_PRODUCT_E1402                  0x1402
+ #define HUAWEI_PRODUCT_E1403                  0x1403
++#define HUAWEI_PRODUCT_E1404                  0x1404
+ #define HUAWEI_PRODUCT_E1405                  0x1405
+ #define HUAWEI_PRODUCT_E1406                  0x1406
++#define HUAWEI_PRODUCT_E1407                  0x1407
+ #define HUAWEI_PRODUCT_E1408                  0x1408
+ #define HUAWEI_PRODUCT_E1409                  0x1409
++#define HUAWEI_PRODUCT_E140A                  0x140A
++#define HUAWEI_PRODUCT_E140B                  0x140B
++#define HUAWEI_PRODUCT_E140C                  0x140C
++#define HUAWEI_PRODUCT_E140D                  0x140D
++#define HUAWEI_PRODUCT_E140E                  0x140E
++#define HUAWEI_PRODUCT_E140F                  0x140F
+ #define HUAWEI_PRODUCT_E1410                  0x1410
+ #define HUAWEI_PRODUCT_E1411                  0x1411
+ #define HUAWEI_PRODUCT_E1412                  0x1412
+@@ -110,6 +119,44 @@ static int  option_send_setup(struct tty
+ #define HUAWEI_PRODUCT_E1417                  0x1417
+ #define HUAWEI_PRODUCT_E1418                  0x1418
+ #define HUAWEI_PRODUCT_E1419                  0x1419
++#define HUAWEI_PRODUCT_E141A                  0x141A
++#define HUAWEI_PRODUCT_E141B                  0x141B
++#define HUAWEI_PRODUCT_E141C                  0x141C
++#define HUAWEI_PRODUCT_E141D                  0x141D
++#define HUAWEI_PRODUCT_E141E                  0x141E
++#define HUAWEI_PRODUCT_E141F                  0x141F
++#define HUAWEI_PRODUCT_E1420                  0x1420
++#define HUAWEI_PRODUCT_E1421                  0x1421
++#define HUAWEI_PRODUCT_E1422                  0x1422
++#define HUAWEI_PRODUCT_E1423                  0x1423
++#define HUAWEI_PRODUCT_E1424                  0x1424
++#define HUAWEI_PRODUCT_E1425                  0x1425
++#define HUAWEI_PRODUCT_E1426                  0x1426
++#define HUAWEI_PRODUCT_E1427                  0x1427
++#define HUAWEI_PRODUCT_E1428                  0x1428
++#define HUAWEI_PRODUCT_E1429                  0x1429
++#define HUAWEI_PRODUCT_E142A                  0x142A
++#define HUAWEI_PRODUCT_E142B                  0x142B
++#define HUAWEI_PRODUCT_E142C                  0x142C
++#define HUAWEI_PRODUCT_E142D                  0x142D
++#define HUAWEI_PRODUCT_E142E                  0x142E
++#define HUAWEI_PRODUCT_E142F                  0x142F
++#define HUAWEI_PRODUCT_E1430                  0x1430
++#define HUAWEI_PRODUCT_E1431                  0x1431
++#define HUAWEI_PRODUCT_E1432                  0x1432
++#define HUAWEI_PRODUCT_E1433                  0x1433
++#define HUAWEI_PRODUCT_E1434                  0x1434
++#define HUAWEI_PRODUCT_E1435                  0x1435
++#define HUAWEI_PRODUCT_E1436                  0x1436
++#define HUAWEI_PRODUCT_E1437                  0x1437
++#define HUAWEI_PRODUCT_E1438                  0x1438
++#define HUAWEI_PRODUCT_E1439                  0x1439
++#define HUAWEI_PRODUCT_E143A                  0x143A
++#define HUAWEI_PRODUCT_E143B                  0x143B
++#define HUAWEI_PRODUCT_E143C                  0x143C
++#define HUAWEI_PRODUCT_E143D                  0x143D
++#define HUAWEI_PRODUCT_E143E                  0x143E
++#define HUAWEI_PRODUCT_E143F                  0x143F
+ #define NOVATELWIRELESS_VENDOR_ID             0x1410
+@@ -249,11 +296,20 @@ static struct usb_device_id option_ids[]
+       { USB_DEVICE_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, HUAWEI_PRODUCT_E220, 0xff, 0xff, 0xff) },
+       { USB_DEVICE_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, HUAWEI_PRODUCT_E220BIS, 0xff, 0xff, 0xff) },
+       { USB_DEVICE_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, HUAWEI_PRODUCT_E1401, 0xff, 0xff, 0xff) },
++      { USB_DEVICE_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, HUAWEI_PRODUCT_E1402, 0xff, 0xff, 0xff) },
+       { USB_DEVICE_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, HUAWEI_PRODUCT_E1403, 0xff, 0xff, 0xff) },
++      { USB_DEVICE_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, HUAWEI_PRODUCT_E1404, 0xff, 0xff, 0xff) },
+       { USB_DEVICE_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, HUAWEI_PRODUCT_E1405, 0xff, 0xff, 0xff) },
+       { USB_DEVICE_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, HUAWEI_PRODUCT_E1406, 0xff, 0xff, 0xff) },
++      { USB_DEVICE_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, HUAWEI_PRODUCT_E1407, 0xff, 0xff, 0xff) },
+       { USB_DEVICE_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, HUAWEI_PRODUCT_E1408, 0xff, 0xff, 0xff) },
+       { USB_DEVICE_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, HUAWEI_PRODUCT_E1409, 0xff, 0xff, 0xff) },
++      { USB_DEVICE_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, HUAWEI_PRODUCT_E140A, 0xff, 0xff, 0xff) },
++      { USB_DEVICE_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, HUAWEI_PRODUCT_E140B, 0xff, 0xff, 0xff) },
++      { USB_DEVICE_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, HUAWEI_PRODUCT_E140C, 0xff, 0xff, 0xff) },
++      { USB_DEVICE_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, HUAWEI_PRODUCT_E140D, 0xff, 0xff, 0xff) },
++      { USB_DEVICE_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, HUAWEI_PRODUCT_E140E, 0xff, 0xff, 0xff) },
++      { USB_DEVICE_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, HUAWEI_PRODUCT_E140F, 0xff, 0xff, 0xff) },
+       { USB_DEVICE_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, HUAWEI_PRODUCT_E1410, 0xff, 0xff, 0xff) },
+       { USB_DEVICE_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, HUAWEI_PRODUCT_E1411, 0xff, 0xff, 0xff) },
+       { USB_DEVICE_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, HUAWEI_PRODUCT_E1412, 0xff, 0xff, 0xff) },
+@@ -264,6 +320,44 @@ static struct usb_device_id option_ids[]
+       { USB_DEVICE_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, HUAWEI_PRODUCT_E1417, 0xff, 0xff, 0xff) },
+       { USB_DEVICE_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, HUAWEI_PRODUCT_E1418, 0xff, 0xff, 0xff) },
+       { USB_DEVICE_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, HUAWEI_PRODUCT_E1419, 0xff, 0xff, 0xff) },
++      { USB_DEVICE_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, HUAWEI_PRODUCT_E141A, 0xff, 0xff, 0xff) },
++      { USB_DEVICE_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, HUAWEI_PRODUCT_E141B, 0xff, 0xff, 0xff) },
++      { USB_DEVICE_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, HUAWEI_PRODUCT_E141C, 0xff, 0xff, 0xff) },
++      { USB_DEVICE_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, HUAWEI_PRODUCT_E141D, 0xff, 0xff, 0xff) },
++      { USB_DEVICE_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, HUAWEI_PRODUCT_E141E, 0xff, 0xff, 0xff) },
++      { USB_DEVICE_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, HUAWEI_PRODUCT_E141F, 0xff, 0xff, 0xff) },
++      { USB_DEVICE_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, HUAWEI_PRODUCT_E1420, 0xff, 0xff, 0xff) },
++      { USB_DEVICE_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, HUAWEI_PRODUCT_E1421, 0xff, 0xff, 0xff) },
++      { USB_DEVICE_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, HUAWEI_PRODUCT_E1422, 0xff, 0xff, 0xff) },
++      { USB_DEVICE_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, HUAWEI_PRODUCT_E1423, 0xff, 0xff, 0xff) },
++      { USB_DEVICE_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, HUAWEI_PRODUCT_E1424, 0xff, 0xff, 0xff) },
++      { USB_DEVICE_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, HUAWEI_PRODUCT_E1425, 0xff, 0xff, 0xff) },
++      { USB_DEVICE_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, HUAWEI_PRODUCT_E1426, 0xff, 0xff, 0xff) },
++      { USB_DEVICE_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, HUAWEI_PRODUCT_E1427, 0xff, 0xff, 0xff) },
++      { USB_DEVICE_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, HUAWEI_PRODUCT_E1428, 0xff, 0xff, 0xff) },
++      { USB_DEVICE_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, HUAWEI_PRODUCT_E1429, 0xff, 0xff, 0xff) },
++      { USB_DEVICE_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, HUAWEI_PRODUCT_E142A, 0xff, 0xff, 0xff) },
++      { USB_DEVICE_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, HUAWEI_PRODUCT_E142B, 0xff, 0xff, 0xff) },
++      { USB_DEVICE_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, HUAWEI_PRODUCT_E142C, 0xff, 0xff, 0xff) },
++      { USB_DEVICE_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, HUAWEI_PRODUCT_E142D, 0xff, 0xff, 0xff) },
++      { USB_DEVICE_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, HUAWEI_PRODUCT_E142E, 0xff, 0xff, 0xff) },
++      { USB_DEVICE_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, HUAWEI_PRODUCT_E142F, 0xff, 0xff, 0xff) },
++      { USB_DEVICE_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, HUAWEI_PRODUCT_E1430, 0xff, 0xff, 0xff) },
++      { USB_DEVICE_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, HUAWEI_PRODUCT_E1431, 0xff, 0xff, 0xff) },
++      { USB_DEVICE_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, HUAWEI_PRODUCT_E1432, 0xff, 0xff, 0xff) },
++      { USB_DEVICE_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, HUAWEI_PRODUCT_E1433, 0xff, 0xff, 0xff) },
++      { USB_DEVICE_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, HUAWEI_PRODUCT_E1434, 0xff, 0xff, 0xff) },
++      { USB_DEVICE_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, HUAWEI_PRODUCT_E1435, 0xff, 0xff, 0xff) },
++      { USB_DEVICE_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, HUAWEI_PRODUCT_E1436, 0xff, 0xff, 0xff) },
++      { USB_DEVICE_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, HUAWEI_PRODUCT_E1437, 0xff, 0xff, 0xff) },
++      { USB_DEVICE_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, HUAWEI_PRODUCT_E1438, 0xff, 0xff, 0xff) },
++      { USB_DEVICE_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, HUAWEI_PRODUCT_E1439, 0xff, 0xff, 0xff) },
++      { USB_DEVICE_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, HUAWEI_PRODUCT_E143A, 0xff, 0xff, 0xff) },
++      { USB_DEVICE_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, HUAWEI_PRODUCT_E143B, 0xff, 0xff, 0xff) },
++      { USB_DEVICE_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, HUAWEI_PRODUCT_E143C, 0xff, 0xff, 0xff) },
++      { USB_DEVICE_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, HUAWEI_PRODUCT_E143D, 0xff, 0xff, 0xff) },
++      { USB_DEVICE_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, HUAWEI_PRODUCT_E143E, 0xff, 0xff, 0xff) },
++      { USB_DEVICE_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, HUAWEI_PRODUCT_E143F, 0xff, 0xff, 0xff) },
+       { USB_DEVICE(AMOI_VENDOR_ID, AMOI_PRODUCT_9508) },
+       { USB_DEVICE(NOVATELWIRELESS_VENDOR_ID, NOVATELWIRELESS_PRODUCT_V640) }, /* Novatel Merlin V640/XV620 */
+       { USB_DEVICE(NOVATELWIRELESS_VENDOR_ID, NOVATELWIRELESS_PRODUCT_V620) }, /* Novatel Merlin V620/S620 */
+
+
+From gregkh@mini.kroah.org Thu Dec 11 11:04:39 2008
+Message-Id: <20081211190439.258109281@mini.kroah.org>
+User-Agent: quilt/0.47-1
+Date: Thu, 11 Dec 2008 11:02:33 -0800
+From: Greg KH <gregkh@suse.de>
+To: linux-kernel@vger.kernel.org,
+ stable@kernel.org
+Cc: Justin Forbes <jmforbes@linuxtx.org>,
+ Zwane Mwaikambo <zwane@arm.linux.org.uk>,
+ Theodore Ts'o <tytso@mit.edu>,
+ Randy Dunlap <rdunlap@xenotime.net>,
+ Dave Jones <davej@redhat.com>,
+ Chuck Wolber <chuckw@quantumlinux.com>,
+ Chris Wedgwood <reviews@ml.cw.f00f.org>,
+ Michael Krufky <mkrufky@linuxtv.org>,
+ Chuck Ebbert <cebbert@redhat.com>,
+ Domenico Andreoli <cavokz@gmail.com>,
+ Willy Tarreau <w@1wt.eu>,
+ Rodrigo Rubira Branco <rbranco@la.checkpoint.com>,
+ Jake Edge <jake@lwn.net>,
+ Eugene Teo <eteo@redhat.com>,
+ torvalds@linux-foundation.org,
+ akpm@linux-foundation.org,
+ alan@lxorguk.ukuu.org.uk,
+ Leslie Harlley Watter <leslie@watter.org>
+Subject: [patch 32/83] USB: Add YISO u893 usb modem vendor and product IDs to option driver
+References: <20081211190201.612240183@mini.kroah.org>
+Content-Disposition: inline; filename=usb-add-yiso-u893-usb-modem-vendor-and-product-ids-to-option-driver.patch
+Content-Length: 1408
+Lines: 37
+
+2.6.27-stable review patch.  If anyone has any objections, please let us know.
+
+------------------
+
+From: Leslie Watter <leslie.watter@gmail.com>
+
+commit c6206faa4f18bcc837a12552b8c184ab1668fdea upstream
+
+This patch adds YISO u893 usb modem vendor and product ID to option.c.
+
+I had a better experience using this modification and the same system.
+
+Signed-off-by: Leslie Harlley Watter <leslie@watter.org>
+Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
+---
+ drivers/usb/serial/option.c |    6 ++++++
+ 1 file changed, 6 insertions(+)
+
+--- a/drivers/usb/serial/option.c
++++ b/drivers/usb/serial/option.c
+@@ -160,6 +160,11 @@ static int  option_send_setup(struct tty
+ #define NOVATELWIRELESS_VENDOR_ID             0x1410
++/* YISO PRODUCTS */
++
++#define YISO_VENDOR_ID                                0x0EAB
++#define YISO_PRODUCT_U893                     0xC893
++
+ /* MERLIN EVDO PRODUCTS */
+ #define NOVATELWIRELESS_PRODUCT_V640          0x1100
+ #define NOVATELWIRELESS_PRODUCT_V620          0x1110
+@@ -408,6 +413,7 @@ static struct usb_device_id option_ids[]
+       { USB_DEVICE(AXESSTEL_VENDOR_ID, AXESSTEL_PRODUCT_MV110H) },
+       { USB_DEVICE(ONDA_VENDOR_ID, ONDA_PRODUCT_MSA501HS) },
+       { USB_DEVICE(ONDA_VENDOR_ID, ONDA_PRODUCT_ET502HS) },
++      { USB_DEVICE(YISO_VENDOR_ID, YISO_PRODUCT_U893) },
+       { USB_DEVICE(BANDRICH_VENDOR_ID, BANDRICH_PRODUCT_C100_1) },
+       { USB_DEVICE(BANDRICH_VENDOR_ID, BANDRICH_PRODUCT_C100_2) },
+       { USB_DEVICE(BANDRICH_VENDOR_ID, BANDRICH_PRODUCT_1004) },
+
+
+From gregkh@mini.kroah.org Thu Dec 11 11:04:39 2008
+Message-Id: <20081211190439.506319318@mini.kroah.org>
+User-Agent: quilt/0.47-1
+Date: Thu, 11 Dec 2008 11:02:34 -0800
+From: Greg KH <gregkh@suse.de>
+To: linux-kernel@vger.kernel.org,
+ stable@kernel.org
+Cc: Justin Forbes <jmforbes@linuxtx.org>,
+ Zwane Mwaikambo <zwane@arm.linux.org.uk>,
+ Theodore Ts'o <tytso@mit.edu>,
+ Randy Dunlap <rdunlap@xenotime.net>,
+ Dave Jones <davej@redhat.com>,
+ Chuck Wolber <chuckw@quantumlinux.com>,
+ Chris Wedgwood <reviews@ml.cw.f00f.org>,
+ Michael Krufky <mkrufky@linuxtv.org>,
+ Chuck Ebbert <cebbert@redhat.com>,
+ Domenico Andreoli <cavokz@gmail.com>,
+ Willy Tarreau <w@1wt.eu>,
+ Rodrigo Rubira Branco <rbranco@la.checkpoint.com>,
+ Jake Edge <jake@lwn.net>,
+ Eugene Teo <eteo@redhat.com>,
+ torvalds@linux-foundation.org,
+ akpm@linux-foundation.org,
+ alan@lxorguk.ukuu.org.uk,
+ Domenico Riccio <domenico.riccio@gmail.com>
+Subject: [patch 33/83] USB: serial: add more Onda device ids to option driver
+References: <20081211190201.612240183@mini.kroah.org>
+Content-Disposition: inline; filename=usb-serial-add-more-onda-device-ids-to-option-driver.patch
+Content-Length: 2686
+Lines: 65
+
+2.6.27-stable review patch.  If anyone has any objections, please let us know.
+
+------------------
+
+From: Greg Kroah-Hartman <gregkh@suse.de>
+
+commit 5bb4bd9895df508ed2bd8b3280252d8a8170e4ac upstream.
+
+Thanks to Domenico Riccio for pointing these out.
+
+Cc: Domenico Riccio <domenico.riccio@gmail.com>
+Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
+
+---
+ drivers/usb/serial/option.c |   35 +++++++++++++++++++++++++++++++++++
+ 1 file changed, 35 insertions(+)
+
+--- a/drivers/usb/serial/option.c
++++ b/drivers/usb/serial/option.c
+@@ -224,6 +224,7 @@ static int  option_send_setup(struct tty
+ #define ONDA_VENDOR_ID                                0x19d2
+ #define ONDA_PRODUCT_MSA501HS                 0x0001
+ #define ONDA_PRODUCT_ET502HS                  0x0002
++#define ONDA_PRODUCT_MT503HS                  0x0200
+ #define BANDRICH_VENDOR_ID                    0x1A8D
+ #define BANDRICH_PRODUCT_C100_1                       0x1002
+@@ -413,6 +414,40 @@ static struct usb_device_id option_ids[]
+       { USB_DEVICE(AXESSTEL_VENDOR_ID, AXESSTEL_PRODUCT_MV110H) },
+       { USB_DEVICE(ONDA_VENDOR_ID, ONDA_PRODUCT_MSA501HS) },
+       { USB_DEVICE(ONDA_VENDOR_ID, ONDA_PRODUCT_ET502HS) },
++      { USB_DEVICE(ONDA_VENDOR_ID, 0x0003) },
++      { USB_DEVICE(ONDA_VENDOR_ID, 0x0004) },
++      { USB_DEVICE(ONDA_VENDOR_ID, 0x0005) },
++      { USB_DEVICE(ONDA_VENDOR_ID, 0x0006) },
++      { USB_DEVICE(ONDA_VENDOR_ID, 0x0007) },
++      { USB_DEVICE(ONDA_VENDOR_ID, 0x0008) },
++      { USB_DEVICE(ONDA_VENDOR_ID, 0x0009) },
++      { USB_DEVICE(ONDA_VENDOR_ID, 0x000a) },
++      { USB_DEVICE(ONDA_VENDOR_ID, 0x000b) },
++      { USB_DEVICE(ONDA_VENDOR_ID, 0x000c) },
++      { USB_DEVICE(ONDA_VENDOR_ID, 0x000d) },
++      { USB_DEVICE(ONDA_VENDOR_ID, 0x000e) },
++      { USB_DEVICE(ONDA_VENDOR_ID, 0x000f) },
++      { USB_DEVICE(ONDA_VENDOR_ID, 0x0010) },
++      { USB_DEVICE(ONDA_VENDOR_ID, 0x0011) },
++      { USB_DEVICE(ONDA_VENDOR_ID, 0x0012) },
++      { USB_DEVICE(ONDA_VENDOR_ID, 0x0013) },
++      { USB_DEVICE(ONDA_VENDOR_ID, 0x0014) },
++      { USB_DEVICE(ONDA_VENDOR_ID, 0x0015) },
++      { USB_DEVICE(ONDA_VENDOR_ID, 0x0016) },
++      { USB_DEVICE(ONDA_VENDOR_ID, 0x0017) },
++      { USB_DEVICE(ONDA_VENDOR_ID, 0x0018) },
++      { USB_DEVICE(ONDA_VENDOR_ID, 0x0019) },
++      { USB_DEVICE(ONDA_VENDOR_ID, 0x0020) },
++      { USB_DEVICE(ONDA_VENDOR_ID, 0x0021) },
++      { USB_DEVICE(ONDA_VENDOR_ID, 0x0022) },
++      { USB_DEVICE(ONDA_VENDOR_ID, 0x0023) },
++      { USB_DEVICE(ONDA_VENDOR_ID, 0x0024) },
++      { USB_DEVICE(ONDA_VENDOR_ID, 0x0025) },
++      { USB_DEVICE(ONDA_VENDOR_ID, 0x0026) },
++      { USB_DEVICE(ONDA_VENDOR_ID, 0x0027) },
++      { USB_DEVICE(ONDA_VENDOR_ID, 0x0028) },
++      { USB_DEVICE(ONDA_VENDOR_ID, 0x0029) },
++      { USB_DEVICE(ONDA_VENDOR_ID, ONDA_PRODUCT_MT503HS) },
+       { USB_DEVICE(YISO_VENDOR_ID, YISO_PRODUCT_U893) },
+       { USB_DEVICE(BANDRICH_VENDOR_ID, BANDRICH_PRODUCT_C100_1) },
+       { USB_DEVICE(BANDRICH_VENDOR_ID, BANDRICH_PRODUCT_C100_2) },
+
+
+From gregkh@mini.kroah.org Thu Dec 11 11:04:39 2008
+Message-Id: <20081211190439.709721846@mini.kroah.org>
+User-Agent: quilt/0.47-1
+Date: Thu, 11 Dec 2008 11:02:35 -0800
+From: Greg KH <gregkh@suse.de>
+To: linux-kernel@vger.kernel.org,
+ stable@kernel.org
+Cc: Justin Forbes <jmforbes@linuxtx.org>,
+ Zwane Mwaikambo <zwane@arm.linux.org.uk>,
+ Theodore Ts'o <tytso@mit.edu>,
+ Randy Dunlap <rdunlap@xenotime.net>,
+ Dave Jones <davej@redhat.com>,
+ Chuck Wolber <chuckw@quantumlinux.com>,
+ Chris Wedgwood <reviews@ml.cw.f00f.org>,
+ Michael Krufky <mkrufky@linuxtv.org>,
+ Chuck Ebbert <cebbert@redhat.com>,
+ Domenico Andreoli <cavokz@gmail.com>,
+ Willy Tarreau <w@1wt.eu>,
+ Rodrigo Rubira Branco <rbranco@la.checkpoint.com>,
+ Jake Edge <jake@lwn.net>,
+ Eugene Teo <eteo@redhat.com>,
+ torvalds@linux-foundation.org,
+ akpm@linux-foundation.org,
+ alan@lxorguk.ukuu.org.uk,
+ fangxiaozhi <huananhu@huawei.com>,
+ Phil Dibowitz <phil@ipom.com>
+Subject: [patch 34/83] USB: unusual-devs: support Huawei data card product IDs
+References: <20081211190201.612240183@mini.kroah.org>
+Content-Disposition: inline; filename=usb-unusual-devs-support-huawei-data-card-product-ids.patch
+Content-Length: 12342
+Lines: 379
+
+2.6.27-stable review patch.  If anyone has any objections, please let us know.
+
+------------------
+
+From: fangxiaozhi <huananhu@huawei.com>
+
+commit 1460e5e44cc5ecad7704f63b10dcb3a59d0e008b upstream.
+
+In this patch, we want to do one thing: add more Huawei product IDs into the
+USB driver. Then it can support  more Huawei data card devices. So to declare
+the unusual device for new Huawei data card devices in unusual_devs.h and to
+declare more new product IDs in option.c.
+
+To modify the data value and length in the function of
+usb_stor_huawei_e220_init in initializers.c That's because based on the USB
+standard, while sending SET_FETURE_D to the device, it requires the
+corresponding data to be zero, and its sending length also must be zero.  In
+our old solution, it can be compatible with our WCDMA data card devices, but
+can not support our CDMA data card devices.  But in this new solution, it can
+be compatible with all of our data card devices.
+
+Signed-off-by: fangxiaozhi <huananhu@huawei.com>
+Signed-off-by: Phil Dibowitz <phil@ipom.com>
+Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
+---
+ drivers/usb/storage/unusual_devs.h |  273 ++++++++++++++++++++++++++++++++++---
+ 1 file changed, 254 insertions(+), 19 deletions(-)
+
+--- a/drivers/usb/storage/unusual_devs.h
++++ b/drivers/usb/storage/unusual_devs.h
+@@ -1635,97 +1635,332 @@ UNUSUAL_DEV(  0x1210, 0x0003, 0x0100, 0x
+ /* Reported by fangxiaozhi <huananhu@huawei.com>
+  * This brings the HUAWEI data card devices into multi-port mode
+  */
+-UNUSUAL_DEV( 0x12d1, 0x1001, 0x0000, 0x0000,
++UNUSUAL_DEV(  0x12d1, 0x1001, 0x0000, 0x0000,
+               "HUAWEI MOBILE",
+               "Mass Storage",
+               US_SC_DEVICE, US_PR_DEVICE, usb_stor_huawei_e220_init,
+               0),
+-UNUSUAL_DEV( 0x12d1, 0x1003, 0x0000, 0x0000,
++UNUSUAL_DEV(  0x12d1, 0x1003, 0x0000, 0x0000,
+               "HUAWEI MOBILE",
+               "Mass Storage",
+               US_SC_DEVICE, US_PR_DEVICE, usb_stor_huawei_e220_init,
+               0),
+-UNUSUAL_DEV( 0x12d1, 0x1004, 0x0000, 0x0000,
++UNUSUAL_DEV(  0x12d1, 0x1004, 0x0000, 0x0000,
+               "HUAWEI MOBILE",
+               "Mass Storage",
+               US_SC_DEVICE, US_PR_DEVICE, usb_stor_huawei_e220_init,
+               0),
+-UNUSUAL_DEV( 0x12d1, 0x1401, 0x0000, 0x0000,
++UNUSUAL_DEV(  0x12d1, 0x1401, 0x0000, 0x0000,
+               "HUAWEI MOBILE",
+               "Mass Storage",
+               US_SC_DEVICE, US_PR_DEVICE, usb_stor_huawei_e220_init,
+               0),
+-UNUSUAL_DEV( 0x12d1, 0x1403, 0x0000, 0x0000,
++UNUSUAL_DEV(  0x12d1, 0x1402, 0x0000, 0x0000,
+               "HUAWEI MOBILE",
+               "Mass Storage",
+               US_SC_DEVICE, US_PR_DEVICE, usb_stor_huawei_e220_init,
+               0),
+-UNUSUAL_DEV( 0x12d1, 0x1405, 0x0000, 0x0000,
++UNUSUAL_DEV(  0x12d1, 0x1403, 0x0000, 0x0000,
+               "HUAWEI MOBILE",
+               "Mass Storage",
+               US_SC_DEVICE, US_PR_DEVICE, usb_stor_huawei_e220_init,
+               0),
+-UNUSUAL_DEV( 0x12d1, 0x1406, 0x0000, 0x0000,
++UNUSUAL_DEV(  0x12d1, 0x1404, 0x0000, 0x0000,
+               "HUAWEI MOBILE",
+               "Mass Storage",
+               US_SC_DEVICE, US_PR_DEVICE, usb_stor_huawei_e220_init,
+               0),
+-UNUSUAL_DEV( 0x12d1, 0x1408, 0x0000, 0x0000,
++UNUSUAL_DEV(  0x12d1, 0x1405, 0x0000, 0x0000,
+               "HUAWEI MOBILE",
+               "Mass Storage",
+               US_SC_DEVICE, US_PR_DEVICE, usb_stor_huawei_e220_init,
+               0),
+-UNUSUAL_DEV( 0x12d1, 0x1409, 0x0000, 0x0000,
++UNUSUAL_DEV(  0x12d1, 0x1406, 0x0000, 0x0000,
+               "HUAWEI MOBILE",
+               "Mass Storage",
+               US_SC_DEVICE, US_PR_DEVICE, usb_stor_huawei_e220_init,
+               0),
+-UNUSUAL_DEV( 0x12d1, 0x1410, 0x0000, 0x0000,
++UNUSUAL_DEV(  0x12d1, 0x1407, 0x0000, 0x0000,
+               "HUAWEI MOBILE",
+               "Mass Storage",
+               US_SC_DEVICE, US_PR_DEVICE, usb_stor_huawei_e220_init,
+               0),
+-UNUSUAL_DEV( 0x12d1, 0x1411, 0x0000, 0x0000,
++UNUSUAL_DEV(  0x12d1, 0x1408, 0x0000, 0x0000,
+               "HUAWEI MOBILE",
+               "Mass Storage",
+               US_SC_DEVICE, US_PR_DEVICE, usb_stor_huawei_e220_init,
+               0),
+-UNUSUAL_DEV( 0x12d1, 0x1412, 0x0000, 0x0000,
++UNUSUAL_DEV(  0x12d1, 0x1409, 0x0000, 0x0000,
+               "HUAWEI MOBILE",
+               "Mass Storage",
+               US_SC_DEVICE, US_PR_DEVICE, usb_stor_huawei_e220_init,
+               0),
+-UNUSUAL_DEV( 0x12d1, 0x1413, 0x0000, 0x0000,
++UNUSUAL_DEV(  0x12d1, 0x140A, 0x0000, 0x0000,
+               "HUAWEI MOBILE",
+               "Mass Storage",
+               US_SC_DEVICE, US_PR_DEVICE, usb_stor_huawei_e220_init,
+               0),
+-UNUSUAL_DEV( 0x12d1, 0x1414, 0x0000, 0x0000,
++UNUSUAL_DEV(  0x12d1, 0x140B, 0x0000, 0x0000,
+               "HUAWEI MOBILE",
+               "Mass Storage",
+               US_SC_DEVICE, US_PR_DEVICE, usb_stor_huawei_e220_init,
+               0),
+-UNUSUAL_DEV( 0x12d1, 0x1415, 0x0000, 0x0000,
++UNUSUAL_DEV(  0x12d1, 0x140C, 0x0000, 0x0000,
+               "HUAWEI MOBILE",
+               "Mass Storage",
+               US_SC_DEVICE, US_PR_DEVICE, usb_stor_huawei_e220_init,
+               0),
+-UNUSUAL_DEV( 0x12d1, 0x1416, 0x0000, 0x0000,
++UNUSUAL_DEV(  0x12d1, 0x140D, 0x0000, 0x0000,
+               "HUAWEI MOBILE",
+               "Mass Storage",
+               US_SC_DEVICE, US_PR_DEVICE, usb_stor_huawei_e220_init,
+               0),
+-UNUSUAL_DEV( 0x12d1, 0x1417, 0x0000, 0x0000,
++UNUSUAL_DEV(  0x12d1, 0x140E, 0x0000, 0x0000,
+               "HUAWEI MOBILE",
+               "Mass Storage",
+               US_SC_DEVICE, US_PR_DEVICE, usb_stor_huawei_e220_init,
+               0),
+-UNUSUAL_DEV( 0x12d1, 0x1418, 0x0000, 0x0000,
++UNUSUAL_DEV(  0x12d1, 0x140F, 0x0000, 0x0000,
+               "HUAWEI MOBILE",
+               "Mass Storage",
+               US_SC_DEVICE, US_PR_DEVICE, usb_stor_huawei_e220_init,
+               0),
+-UNUSUAL_DEV( 0x12d1, 0x1419, 0x0000, 0x0000,
++UNUSUAL_DEV(  0x12d1, 0x1410, 0x0000, 0x0000,
++              "HUAWEI MOBILE",
++              "Mass Storage",
++              US_SC_DEVICE, US_PR_DEVICE, usb_stor_huawei_e220_init,
++              0),
++UNUSUAL_DEV(  0x12d1, 0x1411, 0x0000, 0x0000,
++              "HUAWEI MOBILE",
++              "Mass Storage",
++              US_SC_DEVICE, US_PR_DEVICE, usb_stor_huawei_e220_init,
++              0),
++UNUSUAL_DEV(  0x12d1, 0x1412, 0x0000, 0x0000,
++              "HUAWEI MOBILE",
++              "Mass Storage",
++              US_SC_DEVICE, US_PR_DEVICE, usb_stor_huawei_e220_init,
++              0),
++UNUSUAL_DEV(  0x12d1, 0x1413, 0x0000, 0x0000,
++              "HUAWEI MOBILE",
++              "Mass Storage",
++              US_SC_DEVICE, US_PR_DEVICE, usb_stor_huawei_e220_init,
++              0),
++UNUSUAL_DEV(  0x12d1, 0x1414, 0x0000, 0x0000,
++              "HUAWEI MOBILE",
++              "Mass Storage",
++              US_SC_DEVICE, US_PR_DEVICE, usb_stor_huawei_e220_init,
++              0),
++UNUSUAL_DEV(  0x12d1, 0x1415, 0x0000, 0x0000,
++              "HUAWEI MOBILE",
++              "Mass Storage",
++              US_SC_DEVICE, US_PR_DEVICE, usb_stor_huawei_e220_init,
++              0),
++UNUSUAL_DEV(  0x12d1, 0x1416, 0x0000, 0x0000,
++              "HUAWEI MOBILE",
++              "Mass Storage",
++              US_SC_DEVICE, US_PR_DEVICE, usb_stor_huawei_e220_init,
++              0),
++UNUSUAL_DEV(  0x12d1, 0x1417, 0x0000, 0x0000,
++              "HUAWEI MOBILE",
++              "Mass Storage",
++              US_SC_DEVICE, US_PR_DEVICE, usb_stor_huawei_e220_init,
++              0),
++UNUSUAL_DEV(  0x12d1, 0x1418, 0x0000, 0x0000,
++              "HUAWEI MOBILE",
++              "Mass Storage",
++              US_SC_DEVICE, US_PR_DEVICE, usb_stor_huawei_e220_init,
++              0),
++UNUSUAL_DEV(  0x12d1, 0x1419, 0x0000, 0x0000,
++              "HUAWEI MOBILE",
++              "Mass Storage",
++              US_SC_DEVICE, US_PR_DEVICE, usb_stor_huawei_e220_init,
++              0),
++UNUSUAL_DEV(  0x12d1, 0x141A, 0x0000, 0x0000,
++              "HUAWEI MOBILE",
++              "Mass Storage",
++              US_SC_DEVICE, US_PR_DEVICE, usb_stor_huawei_e220_init,
++              0),
++UNUSUAL_DEV(  0x12d1, 0x141B, 0x0000, 0x0000,
++              "HUAWEI MOBILE",
++              "Mass Storage",
++              US_SC_DEVICE, US_PR_DEVICE, usb_stor_huawei_e220_init,
++              0),
++UNUSUAL_DEV(  0x12d1, 0x141C, 0x0000, 0x0000,
++              "HUAWEI MOBILE",
++              "Mass Storage",
++              US_SC_DEVICE, US_PR_DEVICE, usb_stor_huawei_e220_init,
++              0),
++UNUSUAL_DEV(  0x12d1, 0x141D, 0x0000, 0x0000,
++              "HUAWEI MOBILE",
++              "Mass Storage",
++              US_SC_DEVICE, US_PR_DEVICE, usb_stor_huawei_e220_init,
++              0),
++UNUSUAL_DEV(  0x12d1, 0x141E, 0x0000, 0x0000,
++              "HUAWEI MOBILE",
++              "Mass Storage",
++              US_SC_DEVICE, US_PR_DEVICE, usb_stor_huawei_e220_init,
++              0),
++UNUSUAL_DEV(  0x12d1, 0x141F, 0x0000, 0x0000,
++              "HUAWEI MOBILE",
++              "Mass Storage",
++              US_SC_DEVICE, US_PR_DEVICE, usb_stor_huawei_e220_init,
++              0),
++UNUSUAL_DEV(  0x12d1, 0x1420, 0x0000, 0x0000,
++              "HUAWEI MOBILE",
++              "Mass Storage",
++              US_SC_DEVICE, US_PR_DEVICE, usb_stor_huawei_e220_init,
++              0),
++UNUSUAL_DEV(  0x12d1, 0x1421, 0x0000, 0x0000,
++              "HUAWEI MOBILE",
++              "Mass Storage",
++              US_SC_DEVICE, US_PR_DEVICE, usb_stor_huawei_e220_init,
++              0),
++UNUSUAL_DEV(  0x12d1, 0x1422, 0x0000, 0x0000,
++              "HUAWEI MOBILE",
++              "Mass Storage",
++              US_SC_DEVICE, US_PR_DEVICE, usb_stor_huawei_e220_init,
++              0),
++UNUSUAL_DEV(  0x12d1, 0x1423, 0x0000, 0x0000,
++              "HUAWEI MOBILE",
++              "Mass Storage",
++              US_SC_DEVICE, US_PR_DEVICE, usb_stor_huawei_e220_init,
++              0),
++UNUSUAL_DEV(  0x12d1, 0x1424, 0x0000, 0x0000,
++              "HUAWEI MOBILE",
++              "Mass Storage",
++              US_SC_DEVICE, US_PR_DEVICE, usb_stor_huawei_e220_init,
++              0),
++UNUSUAL_DEV(  0x12d1, 0x1425, 0x0000, 0x0000,
++              "HUAWEI MOBILE",
++              "Mass Storage",
++              US_SC_DEVICE, US_PR_DEVICE, usb_stor_huawei_e220_init,
++              0),
++UNUSUAL_DEV(  0x12d1, 0x1426, 0x0000, 0x0000,
++              "HUAWEI MOBILE",
++              "Mass Storage",
++              US_SC_DEVICE, US_PR_DEVICE, usb_stor_huawei_e220_init,
++              0),
++UNUSUAL_DEV(  0x12d1, 0x1427, 0x0000, 0x0000,
++              "HUAWEI MOBILE",
++              "Mass Storage",
++              US_SC_DEVICE, US_PR_DEVICE, usb_stor_huawei_e220_init,
++              0),
++UNUSUAL_DEV(  0x12d1, 0x1428, 0x0000, 0x0000,
++              "HUAWEI MOBILE",
++              "Mass Storage",
++              US_SC_DEVICE, US_PR_DEVICE, usb_stor_huawei_e220_init,
++              0),
++UNUSUAL_DEV(  0x12d1, 0x1429, 0x0000, 0x0000,
++              "HUAWEI MOBILE",
++              "Mass Storage",
++              US_SC_DEVICE, US_PR_DEVICE, usb_stor_huawei_e220_init,
++              0),
++UNUSUAL_DEV(  0x12d1, 0x142A, 0x0000, 0x0000,
++              "HUAWEI MOBILE",
++              "Mass Storage",
++              US_SC_DEVICE, US_PR_DEVICE, usb_stor_huawei_e220_init,
++              0),
++UNUSUAL_DEV(  0x12d1, 0x142B, 0x0000, 0x0000,
++              "HUAWEI MOBILE",
++              "Mass Storage",
++              US_SC_DEVICE, US_PR_DEVICE, usb_stor_huawei_e220_init,
++              0),
++UNUSUAL_DEV(  0x12d1, 0x142C, 0x0000, 0x0000,
++              "HUAWEI MOBILE",
++              "Mass Storage",
++              US_SC_DEVICE, US_PR_DEVICE, usb_stor_huawei_e220_init,
++              0),
++UNUSUAL_DEV(  0x12d1, 0x142D, 0x0000, 0x0000,
++              "HUAWEI MOBILE",
++              "Mass Storage",
++              US_SC_DEVICE, US_PR_DEVICE, usb_stor_huawei_e220_init,
++              0),
++UNUSUAL_DEV(  0x12d1, 0x142E, 0x0000, 0x0000,
++              "HUAWEI MOBILE",
++              "Mass Storage",
++              US_SC_DEVICE, US_PR_DEVICE, usb_stor_huawei_e220_init,
++              0),
++UNUSUAL_DEV(  0x12d1, 0x142F, 0x0000, 0x0000,
++              "HUAWEI MOBILE",
++              "Mass Storage",
++              US_SC_DEVICE, US_PR_DEVICE, usb_stor_huawei_e220_init,
++              0),
++UNUSUAL_DEV(  0x12d1, 0x1430, 0x0000, 0x0000,
++              "HUAWEI MOBILE",
++              "Mass Storage",
++              US_SC_DEVICE, US_PR_DEVICE, usb_stor_huawei_e220_init,
++              0),
++UNUSUAL_DEV(  0x12d1, 0x1431, 0x0000, 0x0000,
++              "HUAWEI MOBILE",
++              "Mass Storage",
++              US_SC_DEVICE, US_PR_DEVICE, usb_stor_huawei_e220_init,
++              0),
++UNUSUAL_DEV(  0x12d1, 0x1432, 0x0000, 0x0000,
++              "HUAWEI MOBILE",
++              "Mass Storage",
++              US_SC_DEVICE, US_PR_DEVICE, usb_stor_huawei_e220_init,
++              0),
++UNUSUAL_DEV(  0x12d1, 0x1433, 0x0000, 0x0000,
++              "HUAWEI MOBILE",
++              "Mass Storage",
++              US_SC_DEVICE, US_PR_DEVICE, usb_stor_huawei_e220_init,
++              0),
++UNUSUAL_DEV(  0x12d1, 0x1434, 0x0000, 0x0000,
++              "HUAWEI MOBILE",
++              "Mass Storage",
++              US_SC_DEVICE, US_PR_DEVICE, usb_stor_huawei_e220_init,
++              0),
++UNUSUAL_DEV(  0x12d1, 0x1435, 0x0000, 0x0000,
++              "HUAWEI MOBILE",
++              "Mass Storage",
++              US_SC_DEVICE, US_PR_DEVICE, usb_stor_huawei_e220_init,
++              0),
++UNUSUAL_DEV(  0x12d1, 0x1436, 0x0000, 0x0000,
++              "HUAWEI MOBILE",
++              "Mass Storage",
++              US_SC_DEVICE, US_PR_DEVICE, usb_stor_huawei_e220_init,
++              0),
++UNUSUAL_DEV(  0x12d1, 0x1437, 0x0000, 0x0000,
++              "HUAWEI MOBILE",
++              "Mass Storage",
++              US_SC_DEVICE, US_PR_DEVICE, usb_stor_huawei_e220_init,
++              0),
++UNUSUAL_DEV(  0x12d1, 0x1438, 0x0000, 0x0000,
++              "HUAWEI MOBILE",
++              "Mass Storage",
++              US_SC_DEVICE, US_PR_DEVICE, usb_stor_huawei_e220_init,
++              0),
++UNUSUAL_DEV(  0x12d1, 0x1439, 0x0000, 0x0000,
++              "HUAWEI MOBILE",
++              "Mass Storage",
++              US_SC_DEVICE, US_PR_DEVICE, usb_stor_huawei_e220_init,
++              0),
++UNUSUAL_DEV(  0x12d1, 0x143A, 0x0000, 0x0000,
++              "HUAWEI MOBILE",
++              "Mass Storage",
++              US_SC_DEVICE, US_PR_DEVICE, usb_stor_huawei_e220_init,
++              0),
++UNUSUAL_DEV(  0x12d1, 0x143B, 0x0000, 0x0000,
++              "HUAWEI MOBILE",
++              "Mass Storage",
++              US_SC_DEVICE, US_PR_DEVICE, usb_stor_huawei_e220_init,
++              0),
++UNUSUAL_DEV(  0x12d1, 0x143C, 0x0000, 0x0000,
++              "HUAWEI MOBILE",
++              "Mass Storage",
++              US_SC_DEVICE, US_PR_DEVICE, usb_stor_huawei_e220_init,
++              0),
++UNUSUAL_DEV(  0x12d1, 0x143D, 0x0000, 0x0000,
++              "HUAWEI MOBILE",
++              "Mass Storage",
++              US_SC_DEVICE, US_PR_DEVICE, usb_stor_huawei_e220_init,
++              0),
++UNUSUAL_DEV(  0x12d1, 0x143E, 0x0000, 0x0000,
++              "HUAWEI MOBILE",
++              "Mass Storage",
++              US_SC_DEVICE, US_PR_DEVICE, usb_stor_huawei_e220_init,
++              0),
++UNUSUAL_DEV(  0x12d1, 0x143F, 0x0000, 0x0000,
+               "HUAWEI MOBILE",
+               "Mass Storage",
+               US_SC_DEVICE, US_PR_DEVICE, usb_stor_huawei_e220_init,
+
+
+From gregkh@mini.kroah.org Thu Dec 11 11:04:40 2008
+Message-Id: <20081211190439.970361257@mini.kroah.org>
+User-Agent: quilt/0.47-1
+Date: Thu, 11 Dec 2008 11:02:36 -0800
+From: Greg KH <gregkh@suse.de>
+To: linux-kernel@vger.kernel.org,
+ stable@kernel.org
+Cc: Justin Forbes <jmforbes@linuxtx.org>,
+ Zwane Mwaikambo <zwane@arm.linux.org.uk>,
+ Theodore Ts'o <tytso@mit.edu>,
+ Randy Dunlap <rdunlap@xenotime.net>,
+ Dave Jones <davej@redhat.com>,
+ Chuck Wolber <chuckw@quantumlinux.com>,
+ Chris Wedgwood <reviews@ml.cw.f00f.org>,
+ Michael Krufky <mkrufky@linuxtv.org>,
+ Chuck Ebbert <cebbert@redhat.com>,
+ Domenico Andreoli <cavokz@gmail.com>,
+ Willy Tarreau <w@1wt.eu>,
+ Rodrigo Rubira Branco <rbranco@la.checkpoint.com>,
+ Jake Edge <jake@lwn.net>,
+ Eugene Teo <eteo@redhat.com>,
+ torvalds@linux-foundation.org,
+ akpm@linux-foundation.org,
+ alan@lxorguk.ukuu.org.uk,
+ =?ISO-8859-15?q?Fr=C3=A9d=C3=A9ric=20Marchal?= <frederic.marchal@wowcompany.com>,
+ Phil Dibowitz <phil@ipom.com>
+Subject: [patch 35/83] USB: Unusual dev for Mio moov 330 gps
+References: <20081211190201.612240183@mini.kroah.org>
+Content-Disposition: inline; filename=usb-unusual-dev-for-mio-moov-330-gps.patch
+Content-Length: 1238
+Lines: 34
+
+2.6.27-stable review patch.  If anyone has any objections, please let us know.
+
+------------------
+
+From: Frédéric Marchal <frederic.marchal@wowcompany.com>
+
+commit e8fab4ce763c36869624c5388714ff19c30a91a7 upstream
+
+Here is an entry for the unusual_devs.h file to handle a Mio Moov 330 GPS that
+stops responding when it is requested to transfer more than 64KB. The patch is
+taken against kernel-2.6.27-git3.
+
+Signed-off-by: Frédéric Marchal <frederic.marchal@wowcompany.com>
+Signed-off-by: Phil Dibowitz <phil@ipom.com>
+Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
+---
+ drivers/usb/storage/unusual_devs.h |    9 +++++++++
+ 1 file changed, 9 insertions(+)
+
+--- a/drivers/usb/storage/unusual_devs.h
++++ b/drivers/usb/storage/unusual_devs.h
+@@ -2069,6 +2069,15 @@ UNUSUAL_DEV(  0x2770, 0x915d, 0x0010, 0x
+               US_SC_DEVICE, US_PR_DEVICE, NULL,
+               US_FL_FIX_CAPACITY ),
++/* Reported by Frederic Marchal <frederic.marchal@wowcompany.com>
++ * Mio Moov 330
++ */
++UNUSUAL_DEV(  0x3340, 0xffff, 0x0000, 0x0000,
++              "Mitac",
++              "Mio DigiWalker USB Sync",
++              US_SC_DEVICE,US_PR_DEVICE,NULL,
++              US_FL_MAX_SECTORS_64 ),
++
+ /* Reported by Andrey Rahmatullin <wrar@altlinux.org> */
+ UNUSUAL_DEV(  0x4102, 0x1020, 0x0100,  0x0100,
+               "iRiver",
+
+
+From gregkh@mini.kroah.org Thu Dec 11 11:04:40 2008
+Message-Id: <20081211190440.373739271@mini.kroah.org>
+User-Agent: quilt/0.47-1
+Date: Thu, 11 Dec 2008 11:02:37 -0800
+From: Greg KH <gregkh@suse.de>
+To: linux-kernel@vger.kernel.org,
+ stable@kernel.org
+Cc: Justin Forbes <jmforbes@linuxtx.org>,
+ Zwane Mwaikambo <zwane@arm.linux.org.uk>,
+ Theodore Ts'o <tytso@mit.edu>,
+ Randy Dunlap <rdunlap@xenotime.net>,
+ Dave Jones <davej@redhat.com>,
+ Chuck Wolber <chuckw@quantumlinux.com>,
+ Chris Wedgwood <reviews@ml.cw.f00f.org>,
+ Michael Krufky <mkrufky@linuxtv.org>,
+ Chuck Ebbert <cebbert@redhat.com>,
+ Domenico Andreoli <cavokz@gmail.com>,
+ Willy Tarreau <w@1wt.eu>,
+ Rodrigo Rubira Branco <rbranco@la.checkpoint.com>,
+ Jake Edge <jake@lwn.net>,
+ Eugene Teo <eteo@redhat.com>,
+ torvalds@linux-foundation.org,
+ akpm@linux-foundation.org,
+ alan@lxorguk.ukuu.org.uk,
+ Jens Taprogge <jens.taprogge@taprogge.org>,
+ Alan Stern <stern@rowland.harvard.edu>,
+ Phil Dibowitz <phil@ipom.com>
+Subject: [patch 36/83] USB: Unusual dev for the "Kyocera / Contax SL300R T*" digital camera.
+References: <20081211190201.612240183@mini.kroah.org>
+Content-Disposition: inline; filename=usb-unusual-dev-for-the-kyocera-contax-sl300r-t-digital-camera.patch
+Content-Length: 1313
+Lines: 33
+
+2.6.27-stable review patch.  If anyone has any objections, please let us know.
+
+------------------
+
+From: Jens Taprogge <jens.taprogge@taprogge.org>
+
+commit 74511bb340059be5a3fceb032213c7f325344694 upstream
+
+The camera reports an incorrect size and fails to handle PREVENT-ALLOW
+MEDIUM REMOVAL commands.  The patch marks the camera as an unusual dev
+and adds the flags to enable the workarounds for both shortcomings.
+
+Signed-off-by: Jens Taprogge <jens.taprogge@taprogge.org>
+Cc: Alan Stern <stern@rowland.harvard.edu>
+Cc: Phil Dibowitz <phil@ipom.com>
+Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
+---
+ drivers/usb/storage/unusual_devs.h |    7 +++++++
+ 1 file changed, 7 insertions(+)
+
+--- a/drivers/usb/storage/unusual_devs.h
++++ b/drivers/usb/storage/unusual_devs.h
+@@ -333,6 +333,13 @@ UNUSUAL_DEV(  0x0482, 0x0103, 0x0100, 0x
+               "Finecam S5",
+               US_SC_DEVICE, US_PR_DEVICE, NULL, US_FL_FIX_INQUIRY),
++/* Patch submitted by Jens Taprogge <jens.taprogge@taprogge.org> */
++UNUSUAL_DEV(  0x0482, 0x0107, 0x0100, 0x0100,
++              "Kyocera",
++              "CONTAX SL300R T*",
++              US_SC_DEVICE, US_PR_DEVICE, NULL,
++              US_FL_FIX_CAPACITY | US_FL_NOT_LOCKABLE),
++
+ /* Reported by Paul Stewart <stewart@wetlogic.net>
+  * This entry is needed because the device reports Sub=ff */
+ UNUSUAL_DEV(  0x04a4, 0x0004, 0x0001, 0x0001,
+
+
+From gregkh@mini.kroah.org Thu Dec 11 11:04:40 2008
+Message-Id: <20081211190440.605786150@mini.kroah.org>
+User-Agent: quilt/0.47-1
+Date: Thu, 11 Dec 2008 11:02:38 -0800
+From: Greg KH <gregkh@suse.de>
+To: linux-kernel@vger.kernel.org,
+ stable@kernel.org
+Cc: Justin Forbes <jmforbes@linuxtx.org>,
+ Zwane Mwaikambo <zwane@arm.linux.org.uk>,
+ Theodore Ts'o <tytso@mit.edu>,
+ Randy Dunlap <rdunlap@xenotime.net>,
+ Dave Jones <davej@redhat.com>,
+ Chuck Wolber <chuckw@quantumlinux.com>,
+ Chris Wedgwood <reviews@ml.cw.f00f.org>,
+ Michael Krufky <mkrufky@linuxtv.org>,
+ Chuck Ebbert <cebbert@redhat.com>,
+ Domenico Andreoli <cavokz@gmail.com>,
+ Willy Tarreau <w@1wt.eu>,
+ Rodrigo Rubira Branco <rbranco@la.checkpoint.com>,
+ Jake Edge <jake@lwn.net>,
+ Eugene Teo <eteo@redhat.com>,
+ torvalds@linux-foundation.org,
+ akpm@linux-foundation.org,
+ alan@lxorguk.ukuu.org.uk,
+ Alan Stern <stern@rowland.harvard.edu>
+Subject: [patch 37/83] USB: add Nikon D300 camera to unusual_devs
+References: <20081211190201.612240183@mini.kroah.org>
+Content-Disposition: inline; filename=usb-add-nikon-d300-camera-to-unusual_devs.patch
+Content-Length: 1642
+Lines: 47
+
+2.6.27-stable review patch.  If anyone has any objections, please let us know.
+
+------------------
+
+From: Paul Ready <lxtwin@homecall.co.uk>
+
+commit 0047ca0a45c6a481abd467fb52d2a480ffc8c6b9 upstream
+
+Addresses http://bugzilla.kernel.org/show_bug.cgi?id=11685
+
+When A Nikon D300 camera is connected to a system it is seen in
+/proc/bus/pci/devices but is not accessible.
+
+This is seen in the above file:
+
+T:  Bus=01 Lev=01 Prnt=01 Port=05 Cnt=03 Dev#= 11 Spd=480 MxCh= 0
+D:  Ver= 2.00 Cls=00(>ifc ) Sub=00 Prot=00 MxPS=64 #Cfgs=  1
+P:  Vendor=04b0 ProdID=041a Rev= 1.03
+S:  Manufacturer=NIKON
+S:  Product=NIKON DSC D300
+S:  SerialNumber=000008014379
+C:* #Ifs= 1 Cfg#= 1 Atr=c0 MxPwr=  2mA
+I:* If#= 0 Alt= 0 #EPs= 3 Cls=06(still) Sub=01 Prot=01 Driver=usbfs
+E:  Ad=81(I) Atr=02(Bulk) MxPS= 512 Ivl=0ms
+E:  Ad=02(O) Atr=02(Bulk) MxPS= 512 Ivl=0ms
+E:  Ad=83(I) Atr=03(Int.) MxPS=   8 Ivl=32ms
+
+Cc: Alan Stern <stern@rowland.harvard.edu>
+Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
+Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
+---
+ drivers/usb/storage/unusual_devs.h |    7 +++++++
+ 1 file changed, 7 insertions(+)
+
+--- a/drivers/usb/storage/unusual_devs.h
++++ b/drivers/usb/storage/unusual_devs.h
+@@ -418,6 +418,13 @@ UNUSUAL_DEV(  0x04b0, 0x0417, 0x0100, 0x
+               US_SC_DEVICE, US_PR_DEVICE, NULL,
+               US_FL_FIX_CAPACITY),
++/* Reported by paul ready <lxtwin@homecall.co.uk> */
++UNUSUAL_DEV(  0x04b0, 0x0419, 0x0100, 0x0200,
++              "NIKON",
++              "NIKON DSC D300",
++              US_SC_DEVICE, US_PR_DEVICE, NULL,
++              US_FL_FIX_CAPACITY),
++
+ /* Reported by Doug Maxey (dwm@austin.ibm.com) */
+ UNUSUAL_DEV(  0x04b3, 0x4001, 0x0110, 0x0110,
+               "IBM",
+
+
+From gregkh@mini.kroah.org Thu Dec 11 11:04:41 2008
+Message-Id: <20081211190440.858830880@mini.kroah.org>
+User-Agent: quilt/0.47-1
+Date: Thu, 11 Dec 2008 11:02:39 -0800
+From: Greg KH <gregkh@suse.de>
+To: linux-kernel@vger.kernel.org,
+ stable@kernel.org
+Cc: Justin Forbes <jmforbes@linuxtx.org>,
+ Zwane Mwaikambo <zwane@arm.linux.org.uk>,
+ Theodore Ts'o <tytso@mit.edu>,
+ Randy Dunlap <rdunlap@xenotime.net>,
+ Dave Jones <davej@redhat.com>,
+ Chuck Wolber <chuckw@quantumlinux.com>,
+ Chris Wedgwood <reviews@ml.cw.f00f.org>,
+ Michael Krufky <mkrufky@linuxtv.org>,
+ Chuck Ebbert <cebbert@redhat.com>,
+ Domenico Andreoli <cavokz@gmail.com>,
+ Willy Tarreau <w@1wt.eu>,
+ Rodrigo Rubira Branco <rbranco@la.checkpoint.com>,
+ Jake Edge <jake@lwn.net>,
+ Eugene Teo <eteo@redhat.com>,
+ torvalds@linux-foundation.org,
+ akpm@linux-foundation.org,
+ alan@lxorguk.ukuu.org.uk,
+ Ricky Wong Yung Fei <evilbladewarrior@gmail.com>
+Subject: [patch 38/83] USB: unusual devs patch for Nokia 7610 Supernova
+References: <20081211190201.612240183@mini.kroah.org>
+Content-Disposition: inline; filename=usb-unusual-devs-patch-for-nokia-7610-supernova.patch
+Content-Length: 1177
+Lines: 32
+
+2.6.27-stable review patch.  If anyone has any objections, please let us know.
+
+------------------
+
+From: Ricky Wong <evilbladewarrior@gmail.com>
+
+commit ed4103b3fcf38985995e732dab6c3e2b9693f6cb upstream.
+
+Additional sectors were reported by the Nokia 7610 Supernova phone in
+usb storage mode. The following patch rectifies the aforementioned
+problem.
+
+Signed-off-by: Ricky Wong Yung Fei <evilbladewarrior@gmail.com>
+Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
+---
+ drivers/usb/storage/unusual_devs.h |    8 ++++++++
+ 1 file changed, 8 insertions(+)
+
+--- a/drivers/usb/storage/unusual_devs.h
++++ b/drivers/usb/storage/unusual_devs.h
+@@ -253,6 +253,14 @@ UNUSUAL_DEV(  0x0421, 0x006a, 0x0000, 0x
+       US_SC_DEVICE, US_PR_DEVICE, NULL,
+       US_FL_FIX_CAPACITY ),
++/* Submitted by Ricky Wong Yung Fei <evilbladewarrior@gmail.com> */
++/* Nokia 7610 Supernova - Too many sectors reported in usb storage mode */
++UNUSUAL_DEV(  0x0421, 0x00f5, 0x0000, 0x0470,
++      "Nokia",
++      "7610 Supernova",
++      US_SC_DEVICE, US_PR_DEVICE, NULL,
++      US_FL_FIX_CAPACITY ),
++
+ /* Reported by Olaf Hering <olh@suse.de> from novell bug #105878 */
+ UNUSUAL_DEV(  0x0424, 0x0fdc, 0x0210, 0x0210,
+               "SMSC",
+
+
+From gregkh@mini.kroah.org Thu Dec 11 11:04:41 2008
+Message-Id: <20081211190441.079701550@mini.kroah.org>
+User-Agent: quilt/0.47-1
+Date: Thu, 11 Dec 2008 11:02:40 -0800
+From: Greg KH <gregkh@suse.de>
+To: linux-kernel@vger.kernel.org,
+ stable@kernel.org
+Cc: Justin Forbes <jmforbes@linuxtx.org>,
+ Zwane Mwaikambo <zwane@arm.linux.org.uk>,
+ Theodore Ts'o <tytso@mit.edu>,
+ Randy Dunlap <rdunlap@xenotime.net>,
+ Dave Jones <davej@redhat.com>,
+ Chuck Wolber <chuckw@quantumlinux.com>,
+ Chris Wedgwood <reviews@ml.cw.f00f.org>,
+ Michael Krufky <mkrufky@linuxtv.org>,
+ Chuck Ebbert <cebbert@redhat.com>,
+ Domenico Andreoli <cavokz@gmail.com>,
+ Willy Tarreau <w@1wt.eu>,
+ Rodrigo Rubira Branco <rbranco@la.checkpoint.com>,
+ Jake Edge <jake@lwn.net>,
+ Eugene Teo <eteo@redhat.com>,
+ torvalds@linux-foundation.org,
+ akpm@linux-foundation.org,
+ alan@lxorguk.ukuu.org.uk,
+ Alan Stern <stern@rowland.harvard.edu>
+Subject: [patch 39/83] USB: storage: updates unusual_devs entry for the Nokia 6300
+References: <20081211190201.612240183@mini.kroah.org>
+Content-Disposition: inline; filename=usb-storage-updates-unusual_devs-entry-for-the-nokia-6300.patch
+Content-Length: 1015
+Lines: 28
+
+2.6.27-stable review patch.  If anyone has any objections, please let us know.
+
+------------------
+
+From: Alan Stern <stern@rowland.harvard.edu>
+
+commit 9beba53dc5c330d781ecc0ad8ea081c2d100ff9f upstream
+
+This patch (as1169) modifies the unusual_devs entry for the Nokia
+6300.  According to Maciej Gierok <mgierok@gmail.com> and David
+McBride <dwm@doc.ic.ac.uk>, the revision limits need to be wider.
+
+This fixes Bugzilla #11768.
+
+Signed-off-by: Alan Stern <stern@rowland.harvard.edu>
+Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
+---
+ drivers/usb/storage/unusual_devs.h |    2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+--- a/drivers/usb/storage/unusual_devs.h
++++ b/drivers/usb/storage/unusual_devs.h
+@@ -240,7 +240,7 @@ UNUSUAL_DEV(  0x0421, 0x04b9, 0x0551, 0x
+               US_FL_FIX_CAPACITY ),
+ /* Reported by Richard Nauber <RichardNauber@web.de> */
+-UNUSUAL_DEV(  0x0421, 0x04fa, 0x0601, 0x0601,
++UNUSUAL_DEV(  0x0421, 0x04fa, 0x0550, 0x0660,
+               "Nokia",
+               "6300",
+               US_SC_DEVICE, US_PR_DEVICE, NULL,
+
+
+From gregkh@mini.kroah.org Thu Dec 11 11:04:41 2008
+Message-Id: <20081211190441.302975178@mini.kroah.org>
+User-Agent: quilt/0.47-1
+Date: Thu, 11 Dec 2008 11:02:41 -0800
+From: Greg KH <gregkh@suse.de>
+To: linux-kernel@vger.kernel.org,
+ stable@kernel.org
+Cc: Justin Forbes <jmforbes@linuxtx.org>,
+ Zwane Mwaikambo <zwane@arm.linux.org.uk>,
+ Theodore Ts'o <tytso@mit.edu>,
+ Randy Dunlap <rdunlap@xenotime.net>,
+ Dave Jones <davej@redhat.com>,
+ Chuck Wolber <chuckw@quantumlinux.com>,
+ Chris Wedgwood <reviews@ml.cw.f00f.org>,
+ Michael Krufky <mkrufky@linuxtv.org>,
+ Chuck Ebbert <cebbert@redhat.com>,
+ Domenico Andreoli <cavokz@gmail.com>,
+ Willy Tarreau <w@1wt.eu>,
+ Rodrigo Rubira Branco <rbranco@la.checkpoint.com>,
+ Jake Edge <jake@lwn.net>,
+ Eugene Teo <eteo@redhat.com>,
+ torvalds@linux-foundation.org,
+ akpm@linux-foundation.org,
+ alan@lxorguk.ukuu.org.uk,
+ Alan Stern <stern@rowland.harvard.edu>
+Subject: [patch 40/83] USB: storage: update unusual_devs entries for Nokia 5300 and 5310
+References: <20081211190201.612240183@mini.kroah.org>
+Content-Disposition: inline; filename=usb-storage-update-unusual_devs-entries-for-nokia-5300-and-5310.patch
+Content-Length: 1507
+Lines: 44
+
+2.6.27-stable review patch.  If anyone has any objections, please let us know.
+
+------------------
+
+From: Alan Stern <stern@rowland.harvard.edu>
+
+commit 589afd3bec907f02c133d7b8185b8af534f14a8e upstream
+
+This patch (as1168) updates the unusual_devs entry for the Nokia 5300.
+According to Jorge Lucangeli Obes <t4m5yn@gmail.com>, some existing
+models have a revision number lower than the lower limit of the
+current entry.
+
+The patch also moves the entry for the Nokia 5310 to its correct place
+in the file.
+
+Signed-off-by: Alan Stern <stern@rowland.harvard.edu>
+Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
+---
+ drivers/usb/storage/unusual_devs.h |    9 ++++++++-
+ 1 file changed, 8 insertions(+), 1 deletion(-)
+
+--- a/drivers/usb/storage/unusual_devs.h
++++ b/drivers/usb/storage/unusual_devs.h
+@@ -167,6 +167,13 @@ UNUSUAL_DEV(  0x0421, 0x005d, 0x0001, 0x
+               US_SC_DEVICE, US_PR_DEVICE, NULL,
+               US_FL_FIX_CAPACITY ),
++/* Patch for Nokia 5310 capacity */
++UNUSUAL_DEV(  0x0421, 0x006a, 0x0000, 0x0591,
++              "Nokia",
++              "5310",
++              US_SC_DEVICE, US_PR_DEVICE, NULL,
++              US_FL_FIX_CAPACITY ),
++
+ /* Reported by Mario Rettig <mariorettig@web.de> */
+ UNUSUAL_DEV(  0x0421, 0x042e, 0x0100, 0x0100,
+               "Nokia",
+@@ -233,7 +240,7 @@ UNUSUAL_DEV(  0x0421, 0x0495, 0x0370, 0x
+               US_FL_MAX_SECTORS_64 ),
+ /* Reported by Cedric Godin <cedric@belbone.be> */
+-UNUSUAL_DEV(  0x0421, 0x04b9, 0x0551, 0x0551,
++UNUSUAL_DEV(  0x0421, 0x04b9, 0x0500, 0x0551,
+               "Nokia",
+               "5300",
+               US_SC_DEVICE, US_PR_DEVICE, NULL,
+
+
+From gregkh@mini.kroah.org Thu Dec 11 11:04:41 2008
+Message-Id: <20081211190441.556327141@mini.kroah.org>
+User-Agent: quilt/0.47-1
+Date: Thu, 11 Dec 2008 11:02:42 -0800
+From: Greg KH <gregkh@suse.de>
+To: linux-kernel@vger.kernel.org,
+ stable@kernel.org
+Cc: Justin Forbes <jmforbes@linuxtx.org>,
+ Zwane Mwaikambo <zwane@arm.linux.org.uk>,
+ Theodore Ts'o <tytso@mit.edu>,
+ Randy Dunlap <rdunlap@xenotime.net>,
+ Dave Jones <davej@redhat.com>,
+ Chuck Wolber <chuckw@quantumlinux.com>,
+ Chris Wedgwood <reviews@ml.cw.f00f.org>,
+ Michael Krufky <mkrufky@linuxtv.org>,
+ Chuck Ebbert <cebbert@redhat.com>,
+ Domenico Andreoli <cavokz@gmail.com>,
+ Willy Tarreau <w@1wt.eu>,
+ Rodrigo Rubira Branco <rbranco@la.checkpoint.com>,
+ Jake Edge <jake@lwn.net>,
+ Eugene Teo <eteo@redhat.com>,
+ torvalds@linux-foundation.org,
+ akpm@linux-foundation.org,
+ alan@lxorguk.ukuu.org.uk,
+ Alan Stern <stern@rowland.harvard.edu>
+Subject: [patch 41/83] USB: storage: unusual_devs entry for Mio C520-GPS
+References: <20081211190201.612240183@mini.kroah.org>
+Content-Disposition: inline; filename=usb-storage-unusual_devs-entry-for-mio-c520-gps.patch
+Content-Length: 1457
+Lines: 39
+
+2.6.27-stable review patch.  If anyone has any objections, please let us know.
+
+------------------
+
+From: Alan Stern <stern@rowland.harvard.edu>
+
+commit a6b7b034d7f20761c55743be2acb762ce09a0c6b upstream
+
+This patch (as1176) adds an unusual_devs entry for the Mio C520 GPS
+unit.  Other devices also based on the Mitac hardware use the same USB
+interface firmware, so the Vendor and Product names are generalized.
+
+This fixes Bugzilla #11583.
+
+Signed-off-by: Alan Stern <stern@rowland.harvard.edu>
+Tested-by: Tamas Kerecsen <kerecsen@bigfoot.com>
+Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
+---
+ drivers/usb/storage/unusual_devs.h |   12 ++++++++++++
+ 1 file changed, 12 insertions(+)
+
+--- a/drivers/usb/storage/unusual_devs.h
++++ b/drivers/usb/storage/unusual_devs.h
+@@ -318,6 +318,18 @@ UNUSUAL_DEV(  0x045a, 0x5210, 0x0101, 0x
+               US_SC_SCSI, US_PR_KARMA, rio_karma_init, 0),
+ #endif
++/* Reported by Tamas Kerecsen <kerecsen@bigfoot.com>
++ * Obviously the PROM has not been customized by the VAR;
++ * the Vendor and Product string descriptors are:
++ *    Generic Mass Storage (PROTOTYPE--Remember to change idVendor)
++ *    Generic Manufacturer (PROTOTYPE--Remember to change idVendor)
++ */
++UNUSUAL_DEV(  0x045e, 0xffff, 0x0000, 0x0000,
++              "Mitac",
++              "GPS",
++              US_SC_DEVICE, US_PR_DEVICE, NULL,
++              US_FL_MAX_SECTORS_64 ),
++
+ /*
+  * This virtual floppy is found in Sun equipment (x4600, x4200m2, etc.)
+  * Reported by Pete Zaitcev <zaitcev@redhat.com>
+
+
+From gregkh@mini.kroah.org Thu Dec 11 11:04:41 2008
+Message-Id: <20081211190441.799431642@mini.kroah.org>
+User-Agent: quilt/0.47-1
+Date: Thu, 11 Dec 2008 11:02:43 -0800
+From: Greg KH <gregkh@suse.de>
+To: linux-kernel@vger.kernel.org,
+ stable@kernel.org
+Cc: Justin Forbes <jmforbes@linuxtx.org>,
+ Zwane Mwaikambo <zwane@arm.linux.org.uk>,
+ Theodore Ts'o <tytso@mit.edu>,
+ Randy Dunlap <rdunlap@xenotime.net>,
+ Dave Jones <davej@redhat.com>,
+ Chuck Wolber <chuckw@quantumlinux.com>,
+ Chris Wedgwood <reviews@ml.cw.f00f.org>,
+ Michael Krufky <mkrufky@linuxtv.org>,
+ Chuck Ebbert <cebbert@redhat.com>,
+ Domenico Andreoli <cavokz@gmail.com>,
+ Willy Tarreau <w@1wt.eu>,
+ Rodrigo Rubira Branco <rbranco@la.checkpoint.com>,
+ Jake Edge <jake@lwn.net>,
+ Eugene Teo <eteo@redhat.com>,
+ torvalds@linux-foundation.org,
+ akpm@linux-foundation.org,
+ alan@lxorguk.ukuu.org.uk,
+ Alan Stern <stern@rowland.harvard.edu>
+Subject: [patch 42/83] USB: usb-storage: unusual_devs entry for Nikon D2H
+References: <20081211190201.612240183@mini.kroah.org>
+Content-Disposition: inline; filename=usb-usb-storage-unusual_devs-entry-for-nikon-d2h.patch
+Content-Length: 1038
+Lines: 30
+
+2.6.27-stable review patch.  If anyone has any objections, please let us know.
+
+------------------
+
+From: Tobias Kunze Briseño <t@fictive.com>,
+
+commit 621b239d75b790ac66854d46b094874f69e6776e upstream
+
+This patch adds an unusual_devs entry for the Nikon D2H camera.
+
+From: Tobias Kunze Briseño <t@fictive.com>,
+Signed-off-by: Alan Stern <stern@rowland.harvard.edu>
+Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
+---
+ drivers/usb/storage/unusual_devs.h |    7 +++++++
+ 1 file changed, 7 insertions(+)
+
+--- a/drivers/usb/storage/unusual_devs.h
++++ b/drivers/usb/storage/unusual_devs.h
+@@ -389,6 +389,13 @@ UNUSUAL_DEV(  0x04b0, 0x0401, 0x0200, 0x
+               US_SC_DEVICE, US_PR_DEVICE, NULL,
+               US_FL_FIX_CAPACITY),
++/* Reported by Tobias Kunze Briseno <t-linux@fictive.com> */
++UNUSUAL_DEV(  0x04b0, 0x0403, 0x0200, 0x0200,
++              "NIKON",
++              "NIKON DSC D2H",
++              US_SC_DEVICE, US_PR_DEVICE, NULL,
++              US_FL_FIX_CAPACITY),
++
+ /* Reported by Milinevsky Dmitry <niam.niam@gmail.com> */
+ UNUSUAL_DEV(  0x04b0, 0x0409, 0x0100, 0x0100,
+               "NIKON",
+
+
+From gregkh@mini.kroah.org Thu Dec 11 11:04:42 2008
+Message-Id: <20081211190442.014349529@mini.kroah.org>
+User-Agent: quilt/0.47-1
+Date: Thu, 11 Dec 2008 11:02:44 -0800
+From: Greg KH <gregkh@suse.de>
+To: linux-kernel@vger.kernel.org,
+ stable@kernel.org
+Cc: Justin Forbes <jmforbes@linuxtx.org>,
+ Zwane Mwaikambo <zwane@arm.linux.org.uk>,
+ Theodore Ts'o <tytso@mit.edu>,
+ Randy Dunlap <rdunlap@xenotime.net>,
+ Dave Jones <davej@redhat.com>,
+ Chuck Wolber <chuckw@quantumlinux.com>,
+ Chris Wedgwood <reviews@ml.cw.f00f.org>,
+ Michael Krufky <mkrufky@linuxtv.org>,
+ Chuck Ebbert <cebbert@redhat.com>,
+ Domenico Andreoli <cavokz@gmail.com>,
+ Willy Tarreau <w@1wt.eu>,
+ Rodrigo Rubira Branco <rbranco@la.checkpoint.com>,
+ Jake Edge <jake@lwn.net>,
+ Eugene Teo <eteo@redhat.com>,
+ torvalds@linux-foundation.org,
+ akpm@linux-foundation.org,
+ alan@lxorguk.ukuu.org.uk,
+ "Robin H. Johnson" <robbat2@gentoo.org>,
+ Takashi Iwai <tiwai@suse.de>,
+ Jaroslav Kysela <perex@perex.cz>
+Subject: [patch 43/83] ALSA: HDA: hda_proc: Fix printf format specifier
+References: <20081211190201.612240183@mini.kroah.org>
+Content-Disposition: inline; filename=alsa-hda-hda_proc-fix-printf-format-specifier.patch
+Content-Length: 1048
+Lines: 29
+
+2.6.27-stable review patch.  If anyone has any objections, please let us know.
+
+------------------
+
+From: Robin H. Johnson <robbat2@gentoo.org>
+
+commit 0481f4534910e644626a3607b2a1a979420a2d05 upstream.
+
+The Pincap output had a typod format specifier, leading to an extraneous "08"
+in the output, which is a reserved bit of the Vref field, and was really
+confused :-).
+
+Signed-off-by: Robin H. Johnson <robbat2@gentoo.org>
+Signed-off-by: Takashi Iwai <tiwai@suse.de>
+Signed-off-by: Jaroslav Kysela <perex@perex.cz>
+Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
+
+---
+ sound/pci/hda/hda_proc.c |    2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+--- a/sound/pci/hda/hda_proc.c
++++ b/sound/pci/hda/hda_proc.c
+@@ -216,7 +216,7 @@ static void print_pin_caps(struct snd_in
+       unsigned int caps, val;
+       caps = snd_hda_param_read(codec, nid, AC_PAR_PIN_CAP);
+-      snd_iprintf(buffer, "  Pincap 0x08%x:", caps);
++      snd_iprintf(buffer, "  Pincap 0x%08x:", caps);
+       if (caps & AC_PINCAP_IN)
+               snd_iprintf(buffer, " IN");
+       if (caps & AC_PINCAP_OUT)
+
+
+From gregkh@mini.kroah.org Thu Dec 11 11:04:42 2008
+Message-Id: <20081211190442.205634525@mini.kroah.org>
+User-Agent: quilt/0.47-1
+Date: Thu, 11 Dec 2008 11:02:45 -0800
+From: Greg KH <gregkh@suse.de>
+To: linux-kernel@vger.kernel.org,
+ stable@kernel.org
+Cc: Justin Forbes <jmforbes@linuxtx.org>,
+ Zwane Mwaikambo <zwane@arm.linux.org.uk>,
+ Theodore Ts'o <tytso@mit.edu>,
+ Randy Dunlap <rdunlap@xenotime.net>,
+ Dave Jones <davej@redhat.com>,
+ Chuck Wolber <chuckw@quantumlinux.com>,
+ Chris Wedgwood <reviews@ml.cw.f00f.org>,
+ Michael Krufky <mkrufky@linuxtv.org>,
+ Chuck Ebbert <cebbert@redhat.com>,
+ Domenico Andreoli <cavokz@gmail.com>,
+ Willy Tarreau <w@1wt.eu>,
+ Rodrigo Rubira Branco <rbranco@la.checkpoint.com>,
+ Jake Edge <jake@lwn.net>,
+ Eugene Teo <eteo@redhat.com>,
+ torvalds@linux-foundation.org,
+ akpm@linux-foundation.org,
+ alan@lxorguk.ukuu.org.uk,
+ Pascal Terjan <pterjan@mandriva.com>,
+ Takashi Iwai <tiwai@suse.de>,
+ Jaroslav Kysela <perex@perex.cz>
+Subject: [patch 44/83] ALSA: hda - Fix sound on NEC Versa S9100
+References: <20081211190201.612240183@mini.kroah.org>
+Content-Disposition: inline; filename=alsa-hda-fix-sound-on-nec-versa-s9100.patch
+Content-Length: 3511
+Lines: 103
+
+2.6.27-stable review patch.  If anyone has any objections, please let us know.
+
+------------------
+
+From: Pascal Terjan <pterjan@mandriva.com>
+
+commit e8f9ae2a4a0654e7798b8c0ae956e3f0fdc23c8d upstream
+
+This patch adds sound support for NEC Versa S9100
+With it, we get sound on the internal speaker and headphone (with
+automute working) while there is no sound by default.
+External mic also works fine but I don't know if there is an internal
+one (if there is an internal mic it does not work currently), and I
+had to send back the hardware.
+
+Signed-off-by: Pascal Terjan <pterjan@mandriva.com>
+Signed-off-by: Takashi Iwai <tiwai@suse.de>
+Signed-off-by: Jaroslav Kysela <perex@perex.cz>
+Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
+---
+ sound/pci/hda/patch_realtek.c |   48 ++++++++++++++++++++++++++++++++++++++++++
+ 1 file changed, 48 insertions(+)
+
+--- a/sound/pci/hda/patch_realtek.c
++++ b/sound/pci/hda/patch_realtek.c
+@@ -100,6 +100,7 @@ enum {
+       ALC262_BENQ_T31,
+       ALC262_ULTRA,
+       ALC262_LENOVO_3000,
++      ALC262_NEC,
+       ALC262_AUTO,
+       ALC262_MODEL_LAST /* last tag */
+ };
+@@ -8948,6 +8949,41 @@ static void alc262_hippo1_unsol_event(st
+ }
+ /*
++ * nec model
++ *  0x15 = headphone
++ *  0x16 = internal speaker
++ *  0x18 = external mic
++ */
++
++static struct snd_kcontrol_new alc262_nec_mixer[] = {
++      HDA_CODEC_VOLUME_MONO("Speaker Playback Volume", 0x0e, 1, 0x0, HDA_OUTPUT),
++      HDA_CODEC_MUTE_MONO("Speaker Playback Switch", 0x16, 0, 0x0, HDA_OUTPUT),
++
++      HDA_CODEC_VOLUME("Mic Playback Volume", 0x0b, 0x0, HDA_INPUT),
++      HDA_CODEC_MUTE("Mic Playback Switch", 0x0b, 0x0, HDA_INPUT),
++      HDA_CODEC_VOLUME("Mic Boost", 0x18, 0, HDA_INPUT),
++
++      HDA_CODEC_VOLUME("Headphone Playback Volume", 0x0d, 0x0, HDA_OUTPUT),
++      HDA_CODEC_MUTE("Headphone Playback Switch", 0x15, 0x0, HDA_OUTPUT),
++      { } /* end */
++};
++
++static struct hda_verb alc262_nec_verbs[] = {
++      /* Unmute Speaker */
++      {0x16, AC_VERB_SET_AMP_GAIN_MUTE, AMP_OUT_UNMUTE},
++
++      /* Headphone */
++      {0x15, AC_VERB_SET_UNSOLICITED_ENABLE, AC_USRSP_EN | ALC880_HP_EVENT},
++      {0x15, AC_VERB_SET_PIN_WIDGET_CONTROL, PIN_OUT},
++
++      /* External mic to headphone */
++      {0x0d, AC_VERB_SET_AMP_GAIN_MUTE, AMP_IN_UNMUTE(1)},
++      /* External mic to speaker */
++      {0x0e, AC_VERB_SET_AMP_GAIN_MUTE, AMP_IN_UNMUTE(1)},
++      {}
++};
++
++/*
+  * fujitsu model
+  *  0x14 = headphone/spdif-out, 0x15 = internal speaker,
+  *  0x1b = port replicator headphone out
+@@ -9731,11 +9767,13 @@ static const char *alc262_models[ALC262_
+       [ALC262_SONY_ASSAMD]    = "sony-assamd",
+       [ALC262_ULTRA]          = "ultra",
+       [ALC262_LENOVO_3000]    = "lenovo-3000",
++      [ALC262_NEC]            = "nec",
+       [ALC262_AUTO]           = "auto",
+ };
+ static struct snd_pci_quirk alc262_cfg_tbl[] = {
+       SND_PCI_QUIRK(0x1002, 0x437b, "Hippo", ALC262_HIPPO),
++      SND_PCI_QUIRK(0x1033, 0x8895, "NEC Versa S9100", ALC262_NEC),
+       SND_PCI_QUIRK(0x103c, 0x12fe, "HP xw9400", ALC262_HP_BPC),
+       SND_PCI_QUIRK(0x103c, 0x12ff, "HP xw4550", ALC262_HP_BPC),
+       SND_PCI_QUIRK(0x103c, 0x1306, "HP xw8600", ALC262_HP_BPC),
+@@ -9946,6 +9984,16 @@ static struct alc_config_preset alc262_p
+               .input_mux = &alc262_fujitsu_capture_source,
+               .unsol_event = alc262_lenovo_3000_unsol_event,
+       },
++      [ALC262_NEC] = {
++              .mixers = { alc262_nec_mixer },
++              .init_verbs = { alc262_nec_verbs },
++              .num_dacs = ARRAY_SIZE(alc262_dac_nids),
++              .dac_nids = alc262_dac_nids,
++              .hp_nid = 0x03,
++              .num_channel_mode = ARRAY_SIZE(alc262_modes),
++              .channel_mode = alc262_modes,
++              .input_mux = &alc262_capture_source,
++      },
+ };
+ static int patch_alc262(struct hda_codec *codec)
+
+
+From gregkh@mini.kroah.org Thu Dec 11 11:04:42 2008
+Message-Id: <20081211190442.413758043@mini.kroah.org>
+User-Agent: quilt/0.47-1
+Date: Thu, 11 Dec 2008 11:02:46 -0800
+From: Greg KH <gregkh@suse.de>
+To: linux-kernel@vger.kernel.org,
+ stable@kernel.org
+Cc: Justin Forbes <jmforbes@linuxtx.org>,
+ Zwane Mwaikambo <zwane@arm.linux.org.uk>,
+ Theodore Ts'o <tytso@mit.edu>,
+ Randy Dunlap <rdunlap@xenotime.net>,
+ Dave Jones <davej@redhat.com>,
+ Chuck Wolber <chuckw@quantumlinux.com>,
+ Chris Wedgwood <reviews@ml.cw.f00f.org>,
+ Michael Krufky <mkrufky@linuxtv.org>,
+ Chuck Ebbert <cebbert@redhat.com>,
+ Domenico Andreoli <cavokz@gmail.com>,
+ Willy Tarreau <w@1wt.eu>,
+ Rodrigo Rubira Branco <rbranco@la.checkpoint.com>,
+ Jake Edge <jake@lwn.net>,
+ Eugene Teo <eteo@redhat.com>,
+ torvalds@linux-foundation.org,
+ akpm@linux-foundation.org,
+ alan@lxorguk.ukuu.org.uk,
+ Gilberto <gilberto@sistemafenix.com.br>,
+ Mauro Carvalho Chehab <mchehab@infradead.org>,
+ Takashi Iwai <tiwai@suse.de>,
+ Jaroslav Kysela <perex@perex.cz>
+Subject: [patch 45/83] ALSA: hda: Add support for ECS/PC Chips boards with Sigmatel codecs
+References: <20081211190201.612240183@mini.kroah.org>
+Content-Disposition: inline; filename=alsa-hda-add-support-for-ecs-pc-chips-boards-with-sigmatel-codecs.patch
+Content-Length: 3277
+Lines: 89
+
+2.6.27-stable review patch.  If anyone has any objections, please let us know.
+
+------------------
+
+From: Mauro Carvalho Chehab <mchehab@infradead.org>
+
+commit 8c650087992f1d7a3a7be2e632f4e85a52d20619 upstream
+
+Thanks to Sistema Fenix (http://www.sistemafenix.com.br/) and CDI Brasil
+(www.cdibrasil.com.br/) for sponsoring this development.
+
+Signed-off-by: Gilberto <gilberto@sistemafenix.com.br>
+Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
+Signed-off-by: Takashi Iwai <tiwai@suse.de>
+Signed-off-by: Jaroslav Kysela <perex@perex.cz>
+Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
+---
+ sound/pci/hda/patch_sigmatel.c |   35 +++++++++++++++++++++++++++++++++++
+ 1 file changed, 35 insertions(+)
+
+--- a/sound/pci/hda/patch_sigmatel.c
++++ b/sound/pci/hda/patch_sigmatel.c
+@@ -105,6 +105,7 @@ enum {
+       STAC_MACBOOK_PRO_V2,
+       STAC_IMAC_INTEL,
+       STAC_IMAC_INTEL_20,
++      STAC_ECS_202,
+       STAC_922X_DELL_D81,
+       STAC_922X_DELL_D82,
+       STAC_922X_DELL_M81,
+@@ -1478,6 +1479,11 @@ static unsigned int intel_mac_v5_pin_con
+       0x400000fc, 0x400000fb,
+ };
++static unsigned int ecs202_pin_configs[10] = {
++      0x0221401f, 0x02a19020, 0x01a19020, 0x01114010,
++      0x408000f0, 0x01813022, 0x074510a0, 0x40c400f1,
++      0x9037012e, 0x40e000f2,
++};
+ static unsigned int *stac922x_brd_tbl[STAC_922X_MODELS] = {
+       [STAC_D945_REF] = ref922x_pin_configs,
+@@ -1496,6 +1502,7 @@ static unsigned int *stac922x_brd_tbl[ST
+       [STAC_MACBOOK_PRO_V2] = intel_mac_v3_pin_configs,
+       [STAC_IMAC_INTEL] = intel_mac_v2_pin_configs,
+       [STAC_IMAC_INTEL_20] = intel_mac_v3_pin_configs,
++      [STAC_ECS_202] = ecs202_pin_configs,
+       [STAC_922X_DELL_D81] = dell_922x_d81_pin_configs,
+       [STAC_922X_DELL_D82] = dell_922x_d82_pin_configs,       
+       [STAC_922X_DELL_M81] = dell_922x_m81_pin_configs,
+@@ -1519,6 +1526,7 @@ static const char *stac922x_models[STAC_
+       [STAC_MACBOOK_PRO_V2]   = "macbook-pro",
+       [STAC_IMAC_INTEL] = "imac-intel",
+       [STAC_IMAC_INTEL_20] = "imac-intel-20",
++      [STAC_ECS_202] = "ecs202",
+       [STAC_922X_DELL_D81] = "dell-d81",
+       [STAC_922X_DELL_D82] = "dell-d82",
+       [STAC_922X_DELL_M81] = "dell-m81",
+@@ -1605,6 +1613,33 @@ static struct snd_pci_quirk stac922x_cfg
+                     "unknown Dell", STAC_922X_DELL_D81),
+       SND_PCI_QUIRK(PCI_VENDOR_ID_DELL, 0x01d7,
+                     "Dell XPS M1210", STAC_922X_DELL_M82),
++      /* ECS/PC Chips boards */
++      SND_PCI_QUIRK(0x1019, 0x2144,
++                    "ECS/PC chips", STAC_ECS_202),
++      SND_PCI_QUIRK(0x1019, 0x2608,
++                    "ECS/PC chips", STAC_ECS_202),
++      SND_PCI_QUIRK(0x1019, 0x2633,
++                    "ECS/PC chips P17G/1333", STAC_ECS_202),
++      SND_PCI_QUIRK(0x1019, 0x2811,
++                    "ECS/PC chips", STAC_ECS_202),
++      SND_PCI_QUIRK(0x1019, 0x2812,
++                    "ECS/PC chips", STAC_ECS_202),
++      SND_PCI_QUIRK(0x1019, 0x2813,
++                    "ECS/PC chips", STAC_ECS_202),
++      SND_PCI_QUIRK(0x1019, 0x2814,
++                    "ECS/PC chips", STAC_ECS_202),
++      SND_PCI_QUIRK(0x1019, 0x2815,
++                    "ECS/PC chips", STAC_ECS_202),
++      SND_PCI_QUIRK(0x1019, 0x2816,
++                    "ECS/PC chips", STAC_ECS_202),
++      SND_PCI_QUIRK(0x1019, 0x2817,
++                    "ECS/PC chips", STAC_ECS_202),
++      SND_PCI_QUIRK(0x1019, 0x2818,
++                    "ECS/PC chips", STAC_ECS_202),
++      SND_PCI_QUIRK(0x1019, 0x2819,
++                    "ECS/PC chips", STAC_ECS_202),
++      SND_PCI_QUIRK(0x1019, 0x2820,
++                    "ECS/PC chips", STAC_ECS_202),
+       {} /* terminator */
+ };
+
+
+From gregkh@mini.kroah.org Thu Dec 11 11:04:42 2008
+Message-Id: <20081211190442.612638208@mini.kroah.org>
+User-Agent: quilt/0.47-1
+Date: Thu, 11 Dec 2008 11:02:47 -0800
+From: Greg KH <gregkh@suse.de>
+To: linux-kernel@vger.kernel.org,
+ stable@kernel.org
+Cc: Justin Forbes <jmforbes@linuxtx.org>,
+ Zwane Mwaikambo <zwane@arm.linux.org.uk>,
+ Theodore Ts'o <tytso@mit.edu>,
+ Randy Dunlap <rdunlap@xenotime.net>,
+ Dave Jones <davej@redhat.com>,
+ Chuck Wolber <chuckw@quantumlinux.com>,
+ Chris Wedgwood <reviews@ml.cw.f00f.org>,
+ Michael Krufky <mkrufky@linuxtv.org>,
+ Chuck Ebbert <cebbert@redhat.com>,
+ Domenico Andreoli <cavokz@gmail.com>,
+ Willy Tarreau <w@1wt.eu>,
+ Rodrigo Rubira Branco <rbranco@la.checkpoint.com>,
+ Jake Edge <jake@lwn.net>,
+ Eugene Teo <eteo@redhat.com>,
+ torvalds@linux-foundation.org,
+ akpm@linux-foundation.org,
+ alan@lxorguk.ukuu.org.uk,
+ Takashi Iwai <tiwai@suse.de>,
+ Jaroslav Kysela <perex@perex.cz>
+Subject: [patch 46/83] ALSA: hda - Fix ALC269 capture source
+References: <20081211190201.612240183@mini.kroah.org>
+Content-Disposition: inline; filename=alsa-hda-fix-alc269-capture-source.patch
+Content-Length: 1621
+Lines: 51
+
+2.6.27-stable review patch.  If anyone has any objections, please let us know.
+
+------------------
+
+From: Takashi Iwai <tiwai@suse.de>
+
+commit e01bf5091f044011823aefa1882eb3fba0434918 upstream
+
+ALC269 capture source wasn't properly set up.
+It's an independent MUX (0x23), not a source of ADC.
+
+Signed-off-by: Takashi Iwai <tiwai@suse.de>
+Signed-off-by: Jaroslav Kysela <perex@perex.cz>
+Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
+---
+ sound/pci/hda/patch_realtek.c |   13 +++++++++++++
+ 1 file changed, 13 insertions(+)
+
+--- a/sound/pci/hda/patch_realtek.c
++++ b/sound/pci/hda/patch_realtek.c
+@@ -11038,6 +11038,14 @@ static hda_nid_t alc269_adc_nids[1] = {
+       0x08,
+ };
++static hda_nid_t alc269_capsrc_nids[1] = {
++      0x23,
++};
++
++/* NOTE: ADC2 (0x07) is connected from a recording *MIXER* (0x24),
++ *       not a mux!
++ */
++
+ static struct hda_input_mux alc269_eeepc_dmic_capture_source = {
+       .num_items = 2,
+       .items = {
+@@ -11404,6 +11412,10 @@ static int alc269_parse_auto_config(stru
+       spec->init_verbs[spec->num_init_verbs++] = alc269_init_verbs;
+       spec->num_mux_defs = 1;
+       spec->input_mux = &spec->private_imux;
++      /* set default input source */
++      snd_hda_codec_write_cache(codec, alc269_capsrc_nids[0],
++                                0, AC_VERB_SET_CONNECT_SEL,
++                                spec->input_mux->items[0].index);
+       err = alc_auto_add_mic_boost(codec);
+       if (err < 0)
+@@ -11536,6 +11548,7 @@ static int patch_alc269(struct hda_codec
+       spec->adc_nids = alc269_adc_nids;
+       spec->num_adc_nids = ARRAY_SIZE(alc269_adc_nids);
++      spec->capsrc_nids = alc269_capsrc_nids;
+       codec->patch_ops = alc_patch_ops;
+       if (board_config == ALC269_AUTO)
+
+
+From gregkh@mini.kroah.org Thu Dec 11 11:04:43 2008
+Message-Id: <20081211190442.824425740@mini.kroah.org>
+User-Agent: quilt/0.47-1
+Date: Thu, 11 Dec 2008 11:02:48 -0800
+From: Greg KH <gregkh@suse.de>
+To: linux-kernel@vger.kernel.org,
+ stable@kernel.org
+Cc: Justin Forbes <jmforbes@linuxtx.org>,
+ Zwane Mwaikambo <zwane@arm.linux.org.uk>,
+ Theodore Ts'o <tytso@mit.edu>,
+ Randy Dunlap <rdunlap@xenotime.net>,
+ Dave Jones <davej@redhat.com>,
+ Chuck Wolber <chuckw@quantumlinux.com>,
+ Chris Wedgwood <reviews@ml.cw.f00f.org>,
+ Michael Krufky <mkrufky@linuxtv.org>,
+ Chuck Ebbert <cebbert@redhat.com>,
+ Domenico Andreoli <cavokz@gmail.com>,
+ Willy Tarreau <w@1wt.eu>,
+ Rodrigo Rubira Branco <rbranco@la.checkpoint.com>,
+ Jake Edge <jake@lwn.net>,
+ Eugene Teo <eteo@redhat.com>,
+ torvalds@linux-foundation.org,
+ akpm@linux-foundation.org,
+ alan@lxorguk.ukuu.org.uk,
+ Travis Place <wishie@wishie.net>,
+ Takashi Iwai <tiwai@suse.de>,
+ Jaroslav Kysela <perex@perex.cz>
+Subject: [patch 47/83] ALSA: hda - Add model for Toshiba L305 laptop
+References: <20081211190201.612240183@mini.kroah.org>
+Content-Disposition: inline; filename=alsa-hda-add-model-for-toshiba-l305-laptop.patch
+Content-Length: 1189
+Lines: 26
+
+2.6.27-stable review patch.  If anyone has any objections, please let us know.
+
+------------------
+
+From: Travis Place <wishie@wishie.net>
+
+commit 2346d0cde544179a8d235375f1bfbca5c141a31b upstream
+
+Added Subsystem IDs (0x1179, 0xff64) for the Toshiba Satellite L305
+laptop, so it automatically uses the ALC268_TOSHIBA quirk.
+
+Signed-off-by: Travis Place <wishie@wishie.net>
+Signed-off-by: Takashi Iwai <tiwai@suse.de>
+Signed-off-by: Jaroslav Kysela <perex@perex.cz>
+Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
+---
+ sound/pci/hda/patch_realtek.c |    1 +
+ 1 file changed, 1 insertion(+)
+
+--- a/sound/pci/hda/patch_realtek.c
++++ b/sound/pci/hda/patch_realtek.c
+@@ -10806,6 +10806,7 @@ static struct snd_pci_quirk alc268_cfg_t
+       SND_PCI_QUIRK(0x1043, 0x1205, "ASUS W7J", ALC268_3ST),
+       SND_PCI_QUIRK(0x1179, 0xff10, "TOSHIBA A205", ALC268_TOSHIBA),
+       SND_PCI_QUIRK(0x1179, 0xff50, "TOSHIBA A305", ALC268_TOSHIBA),
++      SND_PCI_QUIRK(0x1179, 0xff64, "TOSHIBA L305", ALC268_TOSHIBA),
+       SND_PCI_QUIRK(0x14c0, 0x0025, "COMPAL IFL90/JFL-92", ALC268_TOSHIBA),
+       SND_PCI_QUIRK(0x152d, 0x0763, "Diverse (CPR2000)", ALC268_ACER),
+       SND_PCI_QUIRK(0x152d, 0x0771, "Quanta IL1", ALC267_QUANTA_IL1),
+
+
+From gregkh@mini.kroah.org Thu Dec 11 11:04:43 2008
+Message-Id: <20081211190443.037142650@mini.kroah.org>
+User-Agent: quilt/0.47-1
+Date: Thu, 11 Dec 2008 11:02:49 -0800
+From: Greg KH <gregkh@suse.de>
+To: linux-kernel@vger.kernel.org,
+ stable@kernel.org
+Cc: Justin Forbes <jmforbes@linuxtx.org>,
+ Zwane Mwaikambo <zwane@arm.linux.org.uk>,
+ Theodore Ts'o <tytso@mit.edu>,
+ Randy Dunlap <rdunlap@xenotime.net>,
+ Dave Jones <davej@redhat.com>,
+ Chuck Wolber <chuckw@quantumlinux.com>,
+ Chris Wedgwood <reviews@ml.cw.f00f.org>,
+ Michael Krufky <mkrufky@linuxtv.org>,
+ Chuck Ebbert <cebbert@redhat.com>,
+ Domenico Andreoli <cavokz@gmail.com>,
+ Willy Tarreau <w@1wt.eu>,
+ Rodrigo Rubira Branco <rbranco@la.checkpoint.com>,
+ Jake Edge <jake@lwn.net>,
+ Eugene Teo <eteo@redhat.com>,
+ torvalds@linux-foundation.org,
+ akpm@linux-foundation.org,
+ alan@lxorguk.ukuu.org.uk,
+ Matthew Ranostay <mranostay@embeddedalley.com>,
+ Takashi Iwai <tiwai@suse.de>,
+ Jaroslav Kysela <perex@perex.cz>
+Subject: [patch 48/83] ALSA: hda: fixed hp_nid DAC for DELL_M6
+References: <20081211190201.612240183@mini.kroah.org>
+Content-Disposition: inline; filename=alsa-hda-fixed-hp_nid-dac-for-dell_m6.patch
+Content-Length: 1154
+Lines: 29
+
+2.6.27-stable review patch.  If anyone has any objections, please let us know.
+
+------------------
+
+From: Matthew Ranostay <mranostay@embeddedalley.com>
+
+commit f7cf0a7ce56eb91752fa441cff2669f8d61d4e5e upstream
+
+This patch sets the HP out not used by the "Headphone to Line Out" switch to the
+hp_nid.
+
+Signed-off-by: Matthew Ranostay <mranostay@embeddedalley.com>
+Signed-off-by: Takashi Iwai <tiwai@suse.de>
+Signed-off-by: Jaroslav Kysela <perex@perex.cz>
+Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
+---
+ sound/pci/hda/patch_sigmatel.c |    4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+--- a/sound/pci/hda/patch_sigmatel.c
++++ b/sound/pci/hda/patch_sigmatel.c
+@@ -548,8 +548,8 @@ static struct hda_verb dell_eq_core_init
+       { 0x1f, AC_VERB_SET_VOLUME_KNOB_CONTROL, 0xec},
+       /* setup audio connections */
+       { 0x0d, AC_VERB_SET_CONNECT_SEL, 0x00},
+-      { 0x0a, AC_VERB_SET_CONNECT_SEL, 0x01},
+-      { 0x0f, AC_VERB_SET_CONNECT_SEL, 0x02},
++      { 0x0a, AC_VERB_SET_CONNECT_SEL, 0x02},
++      { 0x0f, AC_VERB_SET_CONNECT_SEL, 0x01},
+       /* setup adcs to point to mixer */
+       { 0x20, AC_VERB_SET_CONNECT_SEL, 0x0b},
+       { 0x21, AC_VERB_SET_CONNECT_SEL, 0x0b},
+
+
+From gregkh@mini.kroah.org Thu Dec 11 11:04:43 2008
+Message-Id: <20081211190443.248501217@mini.kroah.org>
+User-Agent: quilt/0.47-1
+Date: Thu, 11 Dec 2008 11:02:50 -0800
+From: Greg KH <gregkh@suse.de>
+To: linux-kernel@vger.kernel.org,
+ stable@kernel.org
+Cc: Justin Forbes <jmforbes@linuxtx.org>,
+ Zwane Mwaikambo <zwane@arm.linux.org.uk>,
+ Theodore Ts'o <tytso@mit.edu>,
+ Randy Dunlap <rdunlap@xenotime.net>,
+ Dave Jones <davej@redhat.com>,
+ Chuck Wolber <chuckw@quantumlinux.com>,
+ Chris Wedgwood <reviews@ml.cw.f00f.org>,
+ Michael Krufky <mkrufky@linuxtv.org>,
+ Chuck Ebbert <cebbert@redhat.com>,
+ Domenico Andreoli <cavokz@gmail.com>,
+ Willy Tarreau <w@1wt.eu>,
+ Rodrigo Rubira Branco <rbranco@la.checkpoint.com>,
+ Jake Edge <jake@lwn.net>,
+ Eugene Teo <eteo@redhat.com>,
+ torvalds@linux-foundation.org,
+ akpm@linux-foundation.org,
+ alan@lxorguk.ukuu.org.uk,
+ "Robin H. Johnson" <robbat2@gentoo.org>,
+ Takashi Iwai <tiwai@suse.de>,
+ Jaroslav Kysela <perex@perex.cz>
+Subject: [patch 49/83] ALSA: HDA: patch_analog: Fix SPDIF output on AD1989B
+References: <20081211190201.612240183@mini.kroah.org>
+Content-Disposition: inline; filename=alsa-hda-patch_analog-fix-spdif-output-on-ad1989b.patch
+Content-Length: 1202
+Lines: 32
+
+2.6.27-stable review patch.  If anyone has any objections, please let us know.
+
+------------------
+
+From: Robin H. Johnson <robbat2@gentoo.org>
+
+commit e8bfc6c1d22395ab706784cb1bcd60f6f9569ed6 upstream
+
+The SPDIF pins for AD1989 are not enabled by default. Set OUT bit so that they
+actually work. Also initialize the HDMI SPDIF at the same time.
+
+Signed-off-by: Robin H. Johnson <robbat2@gentoo.org>
+Signed-off-by: Takashi Iwai <tiwai@suse.de>
+Signed-off-by: Jaroslav Kysela <perex@perex.cz>
+Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
+---
+ sound/pci/hda/patch_analog.c |    6 +++++-
+ 1 file changed, 5 insertions(+), 1 deletion(-)
+
+--- a/sound/pci/hda/patch_analog.c
++++ b/sound/pci/hda/patch_analog.c
+@@ -2247,8 +2247,12 @@ static struct hda_verb ad1988_spdif_init
+ /* AD1989 has no ADC -> SPDIF route */
+ static struct hda_verb ad1989_spdif_init_verbs[] = {
+-      /* SPDIF out pin */
++      /* SPDIF-1 out pin */
++      {0x1b, AC_VERB_SET_PIN_WIDGET_CONTROL, PIN_OUT },
+       {0x1b, AC_VERB_SET_AMP_GAIN_MUTE, AMP_OUT_UNMUTE | 0x27}, /* 0dB */
++      /* SPDIF-2/HDMI out pin */
++      {0x1d, AC_VERB_SET_PIN_WIDGET_CONTROL, PIN_OUT },
++      {0x1d, AC_VERB_SET_AMP_GAIN_MUTE, AMP_OUT_UNMUTE | 0x27}, /* 0dB */
+       { }
+ };
+
+
+From gregkh@mini.kroah.org Thu Dec 11 11:04:43 2008
+Message-Id: <20081211190443.466041296@mini.kroah.org>
+User-Agent: quilt/0.47-1
+Date: Thu, 11 Dec 2008 11:02:51 -0800
+From: Greg KH <gregkh@suse.de>
+To: linux-kernel@vger.kernel.org,
+ stable@kernel.org
+Cc: Justin Forbes <jmforbes@linuxtx.org>,
+ Zwane Mwaikambo <zwane@arm.linux.org.uk>,
+ Theodore Ts'o <tytso@mit.edu>,
+ Randy Dunlap <rdunlap@xenotime.net>,
+ Dave Jones <davej@redhat.com>,
+ Chuck Wolber <chuckw@quantumlinux.com>,
+ Chris Wedgwood <reviews@ml.cw.f00f.org>,
+ Michael Krufky <mkrufky@linuxtv.org>,
+ Chuck Ebbert <cebbert@redhat.com>,
+ Domenico Andreoli <cavokz@gmail.com>,
+ Willy Tarreau <w@1wt.eu>,
+ Rodrigo Rubira Branco <rbranco@la.checkpoint.com>,
+ Jake Edge <jake@lwn.net>,
+ Eugene Teo <eteo@redhat.com>,
+ torvalds@linux-foundation.org,
+ akpm@linux-foundation.org,
+ alan@lxorguk.ukuu.org.uk,
+ "Robin H. Johnson" <robbat2@gentoo.org>,
+ Takashi Iwai <tiwai@suse.de>,
+ Jaroslav Kysela <perex@perex.cz>
+Subject: [patch 50/83] ALSA: HDA: patch_analog: Quirk for Asus P5Q Premium/Pro boards.
+References: <20081211190201.612240183@mini.kroah.org>
+Content-Disposition: inline; filename=alsa-hda-patch_analog-quirk-for-asus-p5q-premium-pro-boards.patch
+Content-Length: 1030
+Lines: 26
+
+2.6.27-stable review patch.  If anyone has any objections, please let us know.
+
+------------------
+
+From: Robin H. Johnson <robbat2@orbis-terrarum.net>
+
+commit f51ff9937bc6732ed5fc08088fdbe89ab8ed27c3 upstream
+
+Use 6STACK_DIG for the AD2000BX variant of the AD1989B chip used by Asus
+on their Asus P5Q Premium and Pro boards.
+
+Signed-off-by: Robin H. Johnson <robbat2@gentoo.org>
+Signed-off-by: Takashi Iwai <tiwai@suse.de>
+Signed-off-by: Jaroslav Kysela <perex@perex.cz>
+Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
+---
+ sound/pci/hda/patch_analog.c |    1 +
+ 1 file changed, 1 insertion(+)
+
+--- a/sound/pci/hda/patch_analog.c
++++ b/sound/pci/hda/patch_analog.c
+@@ -2872,6 +2872,7 @@ static struct snd_pci_quirk ad1988_cfg_t
+       SND_PCI_QUIRK(0x1043, 0x81ec, "Asus P5B-DLX", AD1988_6STACK_DIG),
+       SND_PCI_QUIRK(0x1043, 0x81f6, "Asus M2N-SLI", AD1988_6STACK_DIG),
+       SND_PCI_QUIRK(0x1043, 0x8277, "Asus P5K-E/WIFI-AP", AD1988_6STACK_DIG),
++      SND_PCI_QUIRK(0x1043, 0x8311, "Asus P5Q-Premium/Pro", AD1988_6STACK_DIG),
+       {}
+ };
+
+
+From gregkh@mini.kroah.org Thu Dec 11 11:04:43 2008
+Message-Id: <20081211190443.670949391@mini.kroah.org>
+User-Agent: quilt/0.47-1
+Date: Thu, 11 Dec 2008 11:02:52 -0800
+From: Greg KH <gregkh@suse.de>
+To: linux-kernel@vger.kernel.org,
+ stable@kernel.org
+Cc: Justin Forbes <jmforbes@linuxtx.org>,
+ Zwane Mwaikambo <zwane@arm.linux.org.uk>,
+ Theodore Ts'o <tytso@mit.edu>,
+ Randy Dunlap <rdunlap@xenotime.net>,
+ Dave Jones <davej@redhat.com>,
+ Chuck Wolber <chuckw@quantumlinux.com>,
+ Chris Wedgwood <reviews@ml.cw.f00f.org>,
+ Michael Krufky <mkrufky@linuxtv.org>,
+ Chuck Ebbert <cebbert@redhat.com>,
+ Domenico Andreoli <cavokz@gmail.com>,
+ Willy Tarreau <w@1wt.eu>,
+ Rodrigo Rubira Branco <rbranco@la.checkpoint.com>,
+ Jake Edge <jake@lwn.net>,
+ Eugene Teo <eteo@redhat.com>,
+ torvalds@linux-foundation.org,
+ akpm@linux-foundation.org,
+ alan@lxorguk.ukuu.org.uk,
+ Peter Korsgaard <jacmet@sunsite.dk>,
+ Takashi Iwai <tiwai@suse.de>,
+ Jaroslav Kysela <perex@perex.cz>
+Subject: [patch 51/83] ALSA: hda: appletv support
+References: <20081211190201.612240183@mini.kroah.org>
+Content-Disposition: inline; filename=alsa-hda-appletv-support.patch
+Content-Length: 883
+Lines: 25
+
+2.6.27-stable review patch.  If anyone has any objections, please let us know.
+
+------------------
+
+From: Peter Korsgaard <jacmet@sunsite.dk>
+
+commit f3911c5ab93e4295938b2013104d2986ea601454 upstream
+
+The AppleTV needs the same handling as the 24" iMac.
+
+Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
+Signed-off-by: Takashi Iwai <tiwai@suse.de>
+Signed-off-by: Jaroslav Kysela <perex@perex.cz>
+Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
+---
+ sound/pci/hda/patch_realtek.c |    1 +
+ 1 file changed, 1 insertion(+)
+
+--- a/sound/pci/hda/patch_realtek.c
++++ b/sound/pci/hda/patch_realtek.c
+@@ -6555,6 +6555,7 @@ static int patch_alc882(struct hda_codec
+                       board_config = ALC885_MACPRO;
+                       break;
+               case 0x106b1000: /* iMac 24 */
++              case 0x106b2800: /* AppleTV */
+                       board_config = ALC885_IMAC24;
+                       break;
+               case 0x106b00a1: /* Macbook (might be wrong - PCI SSID?) */
+
+
+From gregkh@mini.kroah.org Thu Dec 11 11:04:44 2008
+Message-Id: <20081211190443.885845767@mini.kroah.org>
+User-Agent: quilt/0.47-1
+Date: Thu, 11 Dec 2008 11:02:53 -0800
+From: Greg KH <gregkh@suse.de>
+To: linux-kernel@vger.kernel.org,
+ stable@kernel.org
+Cc: Justin Forbes <jmforbes@linuxtx.org>,
+ Zwane Mwaikambo <zwane@arm.linux.org.uk>,
+ Theodore Ts'o <tytso@mit.edu>,
+ Randy Dunlap <rdunlap@xenotime.net>,
+ Dave Jones <davej@redhat.com>,
+ Chuck Wolber <chuckw@quantumlinux.com>,
+ Chris Wedgwood <reviews@ml.cw.f00f.org>,
+ Michael Krufky <mkrufky@linuxtv.org>,
+ Chuck Ebbert <cebbert@redhat.com>,
+ Domenico Andreoli <cavokz@gmail.com>,
+ Willy Tarreau <w@1wt.eu>,
+ Rodrigo Rubira Branco <rbranco@la.checkpoint.com>,
+ Jake Edge <jake@lwn.net>,
+ Eugene Teo <eteo@redhat.com>,
+ torvalds@linux-foundation.org,
+ akpm@linux-foundation.org,
+ alan@lxorguk.ukuu.org.uk,
+ Clive Messer <clive@vacuumtube.org.uk>,
+ Takashi Iwai <tiwai@suse.de>,
+ Jaroslav Kysela <perex@perex.cz>
+Subject: [patch 52/83] ALSA: hda - Fix another ALC889A (rev 0x100101)
+References: <20081211190201.612240183@mini.kroah.org>
+Content-Disposition: inline; filename=alsa-hda-fix-another-alc889a.patch
+Content-Length: 1549
+Lines: 36
+
+2.6.27-stable review patch.  If anyone has any objections, please let us know.
+
+------------------
+
+From: Clive Messer <clive@vacuumtube.org.uk>
+
+commit 669faba27f2f7b04b9228d20e30e7f584f0becd5 upstream
+
+ALC889A hardware (id 0x10ec0885 rev 0x100101) to use patch_alc883
+
+Signed-off-by: Clive Messer <clive@vacuumtube.org.uk>
+Signed-off-by: Takashi Iwai <tiwai@suse.de>
+Signed-off-by: Jaroslav Kysela <perex@perex.cz>
+Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
+---
+ sound/pci/hda/patch_realtek.c |    5 ++++-
+ 1 file changed, 4 insertions(+), 1 deletion(-)
+
+--- a/sound/pci/hda/patch_realtek.c
++++ b/sound/pci/hda/patch_realtek.c
+@@ -6565,7 +6565,8 @@ static int patch_alc882(struct hda_codec
+                       break;
+               default:
+                       /* ALC889A is handled better as ALC888-compatible */
+-                      if (codec->revision_id == 0x100103) {
++                      if (codec->revision_id == 0x100101 ||
++                          codec->revision_id == 0x100103) {
+                               alc_free(codec);
+                               return patch_alc883(codec);
+                       }
+@@ -14959,6 +14960,8 @@ struct hda_codec_preset snd_hda_preset_r
+       { .id = 0x10ec0880, .name = "ALC880", .patch = patch_alc880 },
+       { .id = 0x10ec0882, .name = "ALC882", .patch = patch_alc882 },
+       { .id = 0x10ec0883, .name = "ALC883", .patch = patch_alc883 },
++      { .id = 0x10ec0885, .rev = 0x100101, .name = "ALC889A",
++        .patch = patch_alc882 }, /* should be patch_alc883() in future */
+       { .id = 0x10ec0885, .rev = 0x100103, .name = "ALC889A",
+         .patch = patch_alc882 }, /* should be patch_alc883() in future */
+       { .id = 0x10ec0885, .name = "ALC885", .patch = patch_alc882 },
+
+
+From gregkh@mini.kroah.org Thu Dec 11 11:04:44 2008
+Message-Id: <20081211190444.109963287@mini.kroah.org>
+User-Agent: quilt/0.47-1
+Date: Thu, 11 Dec 2008 11:02:54 -0800
+From: Greg KH <gregkh@suse.de>
+To: linux-kernel@vger.kernel.org,
+ stable@kernel.org
+Cc: Justin Forbes <jmforbes@linuxtx.org>,
+ Zwane Mwaikambo <zwane@arm.linux.org.uk>,
+ Theodore Ts'o <tytso@mit.edu>,
+ Randy Dunlap <rdunlap@xenotime.net>,
+ Dave Jones <davej@redhat.com>,
+ Chuck Wolber <chuckw@quantumlinux.com>,
+ Chris Wedgwood <reviews@ml.cw.f00f.org>,
+ Michael Krufky <mkrufky@linuxtv.org>,
+ Chuck Ebbert <cebbert@redhat.com>,
+ Domenico Andreoli <cavokz@gmail.com>,
+ Willy Tarreau <w@1wt.eu>,
+ Rodrigo Rubira Branco <rbranco@la.checkpoint.com>,
+ Jake Edge <jake@lwn.net>,
+ Eugene Teo <eteo@redhat.com>,
+ torvalds@linux-foundation.org,
+ akpm@linux-foundation.org,
+ alan@lxorguk.ukuu.org.uk,
+ Kailang Yang <kailang@realtek.com>,
+ Takashi Iwai <tiwai@suse.de>
+Subject: [patch 53/83] ALSA: hda - Add ALC887 support
+References: <20081211190201.612240183@mini.kroah.org>
+Content-Disposition: inline; filename=alsa-hda-add-alc887-support.patch
+Content-Length: 1034
+Lines: 24
+
+2.6.27-stable review patch.  If anyone has any objections, please let us know.
+
+------------------
+
+From: Kailang Yang <kailang@realtek.com>
+
+commit a385a52925398e53bedf1a8b30a9a3e002569f27 upstream
+
+Added ALC887 support.  It's almost compatible with ALC883/888.
+
+Signed-off-by: Kailang Yang <kailang@realtek.com>
+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 insertion(+)
+
+--- a/sound/pci/hda/patch_realtek.c
++++ b/sound/pci/hda/patch_realtek.c
+@@ -14965,6 +14965,7 @@ struct hda_codec_preset snd_hda_preset_r
+       { .id = 0x10ec0885, .rev = 0x100103, .name = "ALC889A",
+         .patch = patch_alc882 }, /* should be patch_alc883() in future */
+       { .id = 0x10ec0885, .name = "ALC885", .patch = patch_alc882 },
++      { .id = 0x10ec0887, .name = "ALC887", .patch = patch_alc883 },
+       { .id = 0x10ec0888, .name = "ALC888", .patch = patch_alc883 },
+       { .id = 0x10ec0889, .name = "ALC889", .patch = patch_alc883 },
+       {} /* terminator */
+
+
+From gregkh@mini.kroah.org Thu Dec 11 11:04:44 2008
+Message-Id: <20081211190444.369117663@mini.kroah.org>
+User-Agent: quilt/0.47-1
+Date: Thu, 11 Dec 2008 11:02:55 -0800
+From: Greg KH <gregkh@suse.de>
+To: linux-kernel@vger.kernel.org,
+ stable@kernel.org
+Cc: Justin Forbes <jmforbes@linuxtx.org>,
+ Zwane Mwaikambo <zwane@arm.linux.org.uk>,
+ Theodore Ts'o <tytso@mit.edu>,
+ Randy Dunlap <rdunlap@xenotime.net>,
+ Dave Jones <davej@redhat.com>,
+ Chuck Wolber <chuckw@quantumlinux.com>,
+ Chris Wedgwood <reviews@ml.cw.f00f.org>,
+ Michael Krufky <mkrufky@linuxtv.org>,
+ Chuck Ebbert <cebbert@redhat.com>,
+ Domenico Andreoli <cavokz@gmail.com>,
+ Willy Tarreau <w@1wt.eu>,
+ Rodrigo Rubira Branco <rbranco@la.checkpoint.com>,
+ Jake Edge <jake@lwn.net>,
+ Eugene Teo <eteo@redhat.com>,
+ torvalds@linux-foundation.org,
+ akpm@linux-foundation.org,
+ alan@lxorguk.ukuu.org.uk,
+ Kailang Yang <kailang@realtek.com>,
+ Takashi Iwai <tiwai@suse.de>
+Subject: [patch 54/83] ALSA: hda - Add support of ALC272
+References: <20081211190201.612240183@mini.kroah.org>
+Content-Disposition: inline; filename=alsa-hda-add-support-of-alc272.patch
+Content-Length: 1504
+Lines: 34
+
+2.6.27-stable review patch.  If anyone has any objections, please let us know.
+
+------------------
+
+From: Kailang Yang <kailang@realtek.com>
+
+commit 01afd41f55524e8378601dbf33b858d8dd4b3f31 upstream
+
+Added the support of ALC272 codec.  It's almost compatible with ALC663.
+
+Signed-off-by: Kailang Yang <kailang@realtek.com>
+Signed-off-by: Takashi Iwai <tiwai@suse.de>
+Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
+---
+ sound/pci/hda/patch_realtek.c |    4 ++++
+ 1 file changed, 4 insertions(+)
+
+--- a/sound/pci/hda/patch_realtek.c
++++ b/sound/pci/hda/patch_realtek.c
+@@ -14910,6 +14910,9 @@ static int patch_alc662(struct hda_codec
+       if (codec->vendor_id == 0x10ec0663) {
+               spec->stream_name_analog = "ALC663 Analog";
+               spec->stream_name_digital = "ALC663 Digital";
++      } else if (codec->vendor_id == 0x10ec0272) {
++              spec->stream_name_analog = "ALC272 Analog";
++              spec->stream_name_digital = "ALC272 Digital";
+       } else {
+               spec->stream_name_analog = "ALC662 Analog";
+               spec->stream_name_digital = "ALC662 Digital";
+@@ -14947,6 +14950,7 @@ struct hda_codec_preset snd_hda_preset_r
+       { .id = 0x10ec0267, .name = "ALC267", .patch = patch_alc268 },
+       { .id = 0x10ec0268, .name = "ALC268", .patch = patch_alc268 },
+       { .id = 0x10ec0269, .name = "ALC269", .patch = patch_alc269 },
++      { .id = 0x10ec0272, .name = "ALC272", .patch = patch_alc662 },
+       { .id = 0x10ec0861, .rev = 0x100340, .name = "ALC660",
+         .patch = patch_alc861 },
+       { .id = 0x10ec0660, .name = "ALC660-VD", .patch = patch_alc861vd },
+
+
+From gregkh@mini.kroah.org Thu Dec 11 11:04:44 2008
+Message-Id: <20081211190444.553113116@mini.kroah.org>
+User-Agent: quilt/0.47-1
+Date: Thu, 11 Dec 2008 11:02:56 -0800
+From: Greg KH <gregkh@suse.de>
+To: linux-kernel@vger.kernel.org,
+ stable@kernel.org
+Cc: Justin Forbes <jmforbes@linuxtx.org>,
+ Zwane Mwaikambo <zwane@arm.linux.org.uk>,
+ Theodore Ts'o <tytso@mit.edu>,
+ Randy Dunlap <rdunlap@xenotime.net>,
+ Dave Jones <davej@redhat.com>,
+ Chuck Wolber <chuckw@quantumlinux.com>,
+ Chris Wedgwood <reviews@ml.cw.f00f.org>,
+ Michael Krufky <mkrufky@linuxtv.org>,
+ Chuck Ebbert <cebbert@redhat.com>,
+ Domenico Andreoli <cavokz@gmail.com>,
+ Willy Tarreau <w@1wt.eu>,
+ Rodrigo Rubira Branco <rbranco@la.checkpoint.com>,
+ Jake Edge <jake@lwn.net>,
+ Eugene Teo <eteo@redhat.com>,
+ torvalds@linux-foundation.org,
+ akpm@linux-foundation.org,
+ alan@lxorguk.ukuu.org.uk,
+ Takashi Iwai <tiwai@suse.de>
+Subject: [patch 55/83] ALSA: hda - Restore default pin configs for realtek codecs
+References: <20081211190201.612240183@mini.kroah.org>
+Content-Disposition: inline; filename=alsa-hda-restore-default-pin-configs-for-realtek-codecs.patch
+Content-Length: 4612
+Lines: 176
+
+2.6.27-stable review patch.  If anyone has any objections, please let us know.
+
+------------------
+
+From: Takashi Iwai <tiwai@suse.de>
+
+commit e044c39ae258678d6ebb09fccb2a0fdf7ec51847 upstream
+
+Some machines have broken BIOS resume that doesn't restore the default
+pin configuration properly, which results in a wrong detection of HP
+pin.  This causes a silent speaker output due to missing HP detection.
+Related bug: Novell bug#406101
+       https://bugzilla.novell.com/show_bug.cgi?id=406101
+
+This patch fixes the issue by saving/restoring the default pin configs
+by the driver itself.
+
+Signed-off-by: Takashi Iwai <tiwai@suse.de>
+Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
+---
+ sound/pci/hda/patch_realtek.c |   77 ++++++++++++++++++++++++++++++++++++++++++
+ 1 file changed, 77 insertions(+)
+
+--- a/sound/pci/hda/patch_realtek.c
++++ b/sound/pci/hda/patch_realtek.c
+@@ -292,6 +292,13 @@ struct alc_spec {
+       /* for PLL fix */
+       hda_nid_t pll_nid;
+       unsigned int pll_coef_idx, pll_coef_bit;
++
++#ifdef SND_HDA_NEEDS_RESUME
++#define ALC_MAX_PINS  16
++      unsigned int num_pins;
++      hda_nid_t pin_nids[ALC_MAX_PINS];
++      unsigned int pin_cfgs[ALC_MAX_PINS];
++#endif
+ };
+ /*
+@@ -2723,6 +2730,64 @@ static void alc_free(struct hda_codec *c
+       codec->spec = NULL; /* to be sure */
+ }
++#ifdef SND_HDA_NEEDS_RESUME
++static void store_pin_configs(struct hda_codec *codec)
++{
++      struct alc_spec *spec = codec->spec;
++      hda_nid_t nid, end_nid;
++
++      end_nid = codec->start_nid + codec->num_nodes;
++      for (nid = codec->start_nid; nid < end_nid; nid++) {
++              unsigned int wid_caps = get_wcaps(codec, nid);
++              unsigned int wid_type =
++                      (wid_caps & AC_WCAP_TYPE) >> AC_WCAP_TYPE_SHIFT;
++              if (wid_type != AC_WID_PIN)
++                      continue;
++              if (spec->num_pins >= ARRAY_SIZE(spec->pin_nids))
++                      break;
++              spec->pin_nids[spec->num_pins] = nid;
++              spec->pin_cfgs[spec->num_pins] =
++                      snd_hda_codec_read(codec, nid, 0,
++                                         AC_VERB_GET_CONFIG_DEFAULT, 0);
++              spec->num_pins++;
++      }
++}
++
++static void resume_pin_configs(struct hda_codec *codec)
++{
++      struct alc_spec *spec = codec->spec;
++      int i;
++
++      for (i = 0; i < spec->num_pins; i++) {
++              hda_nid_t pin_nid = spec->pin_nids[i];
++              unsigned int pin_config = spec->pin_cfgs[i];
++              snd_hda_codec_write(codec, pin_nid, 0,
++                                  AC_VERB_SET_CONFIG_DEFAULT_BYTES_0,
++                                  pin_config & 0x000000ff);
++              snd_hda_codec_write(codec, pin_nid, 0,
++                                  AC_VERB_SET_CONFIG_DEFAULT_BYTES_1,
++                                  (pin_config & 0x0000ff00) >> 8);
++              snd_hda_codec_write(codec, pin_nid, 0,
++                                  AC_VERB_SET_CONFIG_DEFAULT_BYTES_2,
++                                  (pin_config & 0x00ff0000) >> 16);
++              snd_hda_codec_write(codec, pin_nid, 0,
++                                  AC_VERB_SET_CONFIG_DEFAULT_BYTES_3,
++                                  pin_config >> 24);
++      }
++}
++
++static int alc_resume(struct hda_codec *codec)
++{
++      resume_pin_configs(codec);
++      codec->patch_ops.init(codec);
++      snd_hda_codec_resume_amp(codec);
++      snd_hda_codec_resume_cache(codec);
++      return 0;
++}
++#else
++#define store_pin_configs(codec)
++#endif
++
+ /*
+  */
+ static struct hda_codec_ops alc_patch_ops = {
+@@ -2731,6 +2796,9 @@ static struct hda_codec_ops alc_patch_op
+       .init = alc_init,
+       .free = alc_free,
+       .unsol_event = alc_unsol_event,
++#ifdef SND_HDA_NEEDS_RESUME
++      .resume = alc_resume,
++#endif
+ #ifdef CONFIG_SND_HDA_POWER_SAVE
+       .check_power_status = alc_check_power_status,
+ #endif
+@@ -3777,6 +3845,7 @@ static int alc880_parse_auto_config(stru
+       spec->num_mux_defs = 1;
+       spec->input_mux = &spec->private_imux;
++      store_pin_configs(codec);
+       return 1;
+ }
+@@ -5125,6 +5194,7 @@ static int alc260_parse_auto_config(stru
+       }
+       spec->num_mixers++;
++      store_pin_configs(codec);
+       return 1;
+ }
+@@ -9731,6 +9801,7 @@ static int alc262_parse_auto_config(stru
+       if (err < 0)
+               return err;
++      store_pin_configs(codec);
+       return 1;
+ }
+@@ -10762,6 +10833,7 @@ static int alc268_parse_auto_config(stru
+       if (err < 0)
+               return err;
++      store_pin_configs(codec);
+       return 1;
+ }
+@@ -11427,6 +11499,7 @@ static int alc269_parse_auto_config(stru
+       spec->mixers[spec->num_mixers] = alc269_capture_mixer;
+       spec->num_mixers++;
++      store_pin_configs(codec);
+       return 1;
+ }
+@@ -12495,6 +12568,7 @@ static int alc861_parse_auto_config(stru
+       spec->mixers[spec->num_mixers] = alc861_capture_mixer;
+       spec->num_mixers++;
++      store_pin_configs(codec);
+       return 1;
+ }
+@@ -13606,6 +13680,7 @@ static int alc861vd_parse_auto_config(st
+       if (err < 0)
+               return err;
++      store_pin_configs(codec);
+       return 1;
+ }
+@@ -14853,6 +14928,8 @@ static int alc662_parse_auto_config(stru
+       spec->mixers[spec->num_mixers] = alc662_capture_mixer;
+       spec->num_mixers++;
++
++      store_pin_configs(codec);
+       return 1;
+ }
+
+
+From gregkh@mini.kroah.org Thu Dec 11 11:04:44 2008
+Message-Id: <20081211190444.750783770@mini.kroah.org>
+User-Agent: quilt/0.47-1
+Date: Thu, 11 Dec 2008 11:02:57 -0800
+From: Greg KH <gregkh@suse.de>
+To: linux-kernel@vger.kernel.org,
+ stable@kernel.org
+Cc: Justin Forbes <jmforbes@linuxtx.org>,
+ Zwane Mwaikambo <zwane@arm.linux.org.uk>,
+ Theodore Ts'o <tytso@mit.edu>,
+ Randy Dunlap <rdunlap@xenotime.net>,
+ Dave Jones <davej@redhat.com>,
+ Chuck Wolber <chuckw@quantumlinux.com>,
+ Chris Wedgwood <reviews@ml.cw.f00f.org>,
+ Michael Krufky <mkrufky@linuxtv.org>,
+ Chuck Ebbert <cebbert@redhat.com>,
+ Domenico Andreoli <cavokz@gmail.com>,
+ Willy Tarreau <w@1wt.eu>,
+ Rodrigo Rubira Branco <rbranco@la.checkpoint.com>,
+ Jake Edge <jake@lwn.net>,
+ Eugene Teo <eteo@redhat.com>,
+ torvalds@linux-foundation.org,
+ akpm@linux-foundation.org,
+ alan@lxorguk.ukuu.org.uk,
+ Takashi Iwai <tiwai@suse.de>
+Subject: [patch 56/83] ALSA: hda - Add another HP model for AD1884A
+References: <20081211190201.612240183@mini.kroah.org>
+Content-Disposition: inline; filename=alsa-hda-add-another-hp-model-for-ad1884a.patch
+Content-Length: 809
+Lines: 23
+
+2.6.27-stable review patch.  If anyone has any objections, please let us know.
+
+------------------
+
+From: Takashi Iwai <tiwai@suse.de>
+
+commit 5695ff44160e62d9193c0201706853bcfe2a077f upstream
+
+Added a quirk entry for another HP mobile device with AD1884A codec.
+
+Signed-off-by: Takashi Iwai <tiwai@suse.de>
+Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
+---
+ sound/pci/hda/patch_analog.c |    1 +
+ 1 file changed, 1 insertion(+)
+
+--- a/sound/pci/hda/patch_analog.c
++++ b/sound/pci/hda/patch_analog.c
+@@ -3847,6 +3847,7 @@ static const char *ad1884a_models[AD1884
+ static struct snd_pci_quirk ad1884a_cfg_tbl[] = {
+       SND_PCI_QUIRK(0x103c, 0x3030, "HP", AD1884A_MOBILE),
++      SND_PCI_QUIRK(0x103c, 0x3056, "HP", AD1884A_MOBILE),
+       SND_PCI_QUIRK(0x17aa, 0x20ac, "Thinkpad X300", AD1884A_THINKPAD),
+       {}
+ };
+
+
+From gregkh@mini.kroah.org Thu Dec 11 11:04:45 2008
+Message-Id: <20081211190444.962846337@mini.kroah.org>
+User-Agent: quilt/0.47-1
+Date: Thu, 11 Dec 2008 11:02:58 -0800
+From: Greg KH <gregkh@suse.de>
+To: linux-kernel@vger.kernel.org,
+ stable@kernel.org
+Cc: Justin Forbes <jmforbes@linuxtx.org>,
+ Zwane Mwaikambo <zwane@arm.linux.org.uk>,
+ Theodore Ts'o <tytso@mit.edu>,
+ Randy Dunlap <rdunlap@xenotime.net>,
+ Dave Jones <davej@redhat.com>,
+ Chuck Wolber <chuckw@quantumlinux.com>,
+ Chris Wedgwood <reviews@ml.cw.f00f.org>,
+ Michael Krufky <mkrufky@linuxtv.org>,
+ Chuck Ebbert <cebbert@redhat.com>,
+ Domenico Andreoli <cavokz@gmail.com>,
+ Willy Tarreau <w@1wt.eu>,
+ Rodrigo Rubira Branco <rbranco@la.checkpoint.com>,
+ Jake Edge <jake@lwn.net>,
+ Eugene Teo <eteo@redhat.com>,
+ torvalds@linux-foundation.org,
+ akpm@linux-foundation.org,
+ alan@lxorguk.ukuu.org.uk,
+ Takashi Iwai <tiwai@suse.de>
+Subject: [patch 57/83] ALSA: hda - Add a quirk for another Acer Aspire (1025:0090)
+References: <20081211190201.612240183@mini.kroah.org>
+Content-Disposition: inline; filename=alsa-hda-add-a-quirk-for-another-acer-aspire.patch
+Content-Length: 1133
+Lines: 25
+
+2.6.27-stable review patch.  If anyone has any objections, please let us know.
+
+------------------
+
+From: Takashi Iwai <tiwai@suse.de>
+
+commit 69e50282b726bab75c8050c4836dc89b7eb7bf1a upstream
+
+Added a quirk for another Acer Aspier laptop (1025:0090) with ALC883
+codec.  Reported in Novell bnc#426935:
+    https://bugzilla.novell.com/show_bug.cgi?id=426935
+
+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 insertion(+)
+
+--- a/sound/pci/hda/patch_realtek.c
++++ b/sound/pci/hda/patch_realtek.c
+@@ -8013,6 +8013,7 @@ static const char *alc883_models[ALC883_
+ static struct snd_pci_quirk alc883_cfg_tbl[] = {
+       SND_PCI_QUIRK(0x1019, 0x6668, "ECS", ALC883_3ST_6ch_DIG),
+       SND_PCI_QUIRK(0x1025, 0x006c, "Acer Aspire 9810", ALC883_ACER_ASPIRE),
++      SND_PCI_QUIRK(0x1025, 0x0090, "Acer Aspire", ALC883_ACER_ASPIRE),
+       SND_PCI_QUIRK(0x1025, 0x0110, "Acer Aspire", ALC883_ACER_ASPIRE),
+       SND_PCI_QUIRK(0x1025, 0x0112, "Acer Aspire 9303", ALC883_ACER_ASPIRE),
+       SND_PCI_QUIRK(0x1025, 0x0121, "Acer Aspire 5920G", ALC883_ACER_ASPIRE), 
+
+
+From gregkh@mini.kroah.org Thu Dec 11 11:04:45 2008
+Message-Id: <20081211190445.192541242@mini.kroah.org>
+User-Agent: quilt/0.47-1
+Date: Thu, 11 Dec 2008 11:02:59 -0800
+From: Greg KH <gregkh@suse.de>
+To: linux-kernel@vger.kernel.org,
+ stable@kernel.org
+Cc: Justin Forbes <jmforbes@linuxtx.org>,
+ Zwane Mwaikambo <zwane@arm.linux.org.uk>,
+ Theodore Ts'o <tytso@mit.edu>,
+ Randy Dunlap <rdunlap@xenotime.net>,
+ Dave Jones <davej@redhat.com>,
+ Chuck Wolber <chuckw@quantumlinux.com>,
+ Chris Wedgwood <reviews@ml.cw.f00f.org>,
+ Michael Krufky <mkrufky@linuxtv.org>,
+ Chuck Ebbert <cebbert@redhat.com>,
+ Domenico Andreoli <cavokz@gmail.com>,
+ Willy Tarreau <w@1wt.eu>,
+ Rodrigo Rubira Branco <rbranco@la.checkpoint.com>,
+ Jake Edge <jake@lwn.net>,
+ Eugene Teo <eteo@redhat.com>,
+ torvalds@linux-foundation.org,
+ akpm@linux-foundation.org,
+ alan@lxorguk.ukuu.org.uk,
+ Takashi Iwai <tiwai@suse.de>
+Subject: [patch 58/83] ALSA: hda - Add a quirk for MEDION MD96630
+References: <20081211190201.612240183@mini.kroah.org>
+Content-Disposition: inline; filename=alsa-hda-add-a-quirk-for-medion-md96630.patch
+Content-Length: 1157
+Lines: 26
+
+2.6.27-stable review patch.  If anyone has any objections, please let us know.
+
+------------------
+
+From: Takashi Iwai <tiwai@suse.de>
+
+commit 959973b92d3ba235edfa5dcb5df1be1e5d1deba2 upstream
+
+Use model=lenovo-ms7195-dig for MEDION MD96630 laptop (17c0:4085)
+with ALC888 codec.
+Reference: Novell bnc#412548
+       https://bugzilla.novell.com/show_bug.cgi?id=412528
+
+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 insertion(+)
+
+--- a/sound/pci/hda/patch_realtek.c
++++ b/sound/pci/hda/patch_realtek.c
+@@ -8064,6 +8064,7 @@ static struct snd_pci_quirk alc883_cfg_t
+       SND_PCI_QUIRK(0x17aa, 0x3bfc, "Lenovo NB0763", ALC883_LENOVO_NB0763),
+       SND_PCI_QUIRK(0x17aa, 0x3bfd, "Lenovo NB0763", ALC883_LENOVO_NB0763),
+       SND_PCI_QUIRK(0x17c0, 0x4071, "MEDION MD2", ALC883_MEDION_MD2),
++      SND_PCI_QUIRK(0x17c0, 0x4085, "MEDION MD96630", ALC888_LENOVO_MS7195_DIG),
+       SND_PCI_QUIRK(0x17f2, 0x5000, "Albatron KI690-AM2", ALC883_6ST_DIG),
+       SND_PCI_QUIRK(0x1991, 0x5625, "Haier W66", ALC883_HAIER_W66),
+       SND_PCI_QUIRK(0x8086, 0x0001, "DG33BUC", ALC883_3ST_6ch_INTEL),
+
+
+From gregkh@mini.kroah.org Thu Dec 11 11:04:45 2008
+Message-Id: <20081211190445.398162067@mini.kroah.org>
+User-Agent: quilt/0.47-1
+Date: Thu, 11 Dec 2008 11:03:00 -0800
+From: Greg KH <gregkh@suse.de>
+To: linux-kernel@vger.kernel.org,
+ stable@kernel.org
+Cc: Justin Forbes <jmforbes@linuxtx.org>,
+ Zwane Mwaikambo <zwane@arm.linux.org.uk>,
+ Theodore Ts'o <tytso@mit.edu>,
+ Randy Dunlap <rdunlap@xenotime.net>,
+ Dave Jones <davej@redhat.com>,
+ Chuck Wolber <chuckw@quantumlinux.com>,
+ Chris Wedgwood <reviews@ml.cw.f00f.org>,
+ Michael Krufky <mkrufky@linuxtv.org>,
+ Chuck Ebbert <cebbert@redhat.com>,
+ Domenico Andreoli <cavokz@gmail.com>,
+ Willy Tarreau <w@1wt.eu>,
+ Rodrigo Rubira Branco <rbranco@la.checkpoint.com>,
+ Jake Edge <jake@lwn.net>,
+ Eugene Teo <eteo@redhat.com>,
+ torvalds@linux-foundation.org,
+ akpm@linux-foundation.org,
+ alan@lxorguk.ukuu.org.uk,
+ Michel Marti <mma@objectxp.com>,
+ Takashi Iwai <tiwai@suse.de>
+Subject: [patch 59/83] ALSA: hda - Add another HP model (6730s) for AD1884A
+References: <20081211190201.612240183@mini.kroah.org>
+Content-Disposition: inline; filename=alsa-hda-add-another-hp-model-6730s-for-ad1884a.patch
+Content-Length: 923
+Lines: 25
+
+2.6.27-stable review patch.  If anyone has any objections, please let us know.
+
+------------------
+
+From: Michel Marti <mma@objectxp.com>
+
+commit 65b92e5cbc8acd14ea83190b4d016f765dce6075 upstream
+
+Added model=laptop for another HP machine (103c:3614) with AD1884A
+codec.
+
+Signed-off-by: Michel Marti <mma@objectxp.com>
+Signed-off-by: Takashi Iwai <tiwai@suse.de>
+Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
+---
+ sound/pci/hda/patch_analog.c |    1 +
+ 1 file changed, 1 insertion(+)
+
+--- a/sound/pci/hda/patch_analog.c
++++ b/sound/pci/hda/patch_analog.c
+@@ -3848,6 +3848,7 @@ static const char *ad1884a_models[AD1884
+ static struct snd_pci_quirk ad1884a_cfg_tbl[] = {
+       SND_PCI_QUIRK(0x103c, 0x3030, "HP", AD1884A_MOBILE),
+       SND_PCI_QUIRK(0x103c, 0x3056, "HP", AD1884A_MOBILE),
++      SND_PCI_QUIRK(0x103c, 0x3614, "HP 6730s", AD1884A_LAPTOP),
+       SND_PCI_QUIRK(0x17aa, 0x20ac, "Thinkpad X300", AD1884A_THINKPAD),
+       {}
+ };
+
+
+From gregkh@mini.kroah.org Thu Dec 11 11:04:45 2008
+Message-Id: <20081211190445.587725824@mini.kroah.org>
+User-Agent: quilt/0.47-1
+Date: Thu, 11 Dec 2008 11:03:01 -0800
+From: Greg KH <gregkh@suse.de>
+To: linux-kernel@vger.kernel.org,
+ stable@kernel.org
+Cc: Justin Forbes <jmforbes@linuxtx.org>,
+ Zwane Mwaikambo <zwane@arm.linux.org.uk>,
+ Theodore Ts'o <tytso@mit.edu>,
+ Randy Dunlap <rdunlap@xenotime.net>,
+ Dave Jones <davej@redhat.com>,
+ Chuck Wolber <chuckw@quantumlinux.com>,
+ Chris Wedgwood <reviews@ml.cw.f00f.org>,
+ Michael Krufky <mkrufky@linuxtv.org>,
+ Chuck Ebbert <cebbert@redhat.com>,
+ Domenico Andreoli <cavokz@gmail.com>,
+ Willy Tarreau <w@1wt.eu>,
+ Rodrigo Rubira Branco <rbranco@la.checkpoint.com>,
+ Jake Edge <jake@lwn.net>,
+ Eugene Teo <eteo@redhat.com>,
+ torvalds@linux-foundation.org,
+ akpm@linux-foundation.org,
+ alan@lxorguk.ukuu.org.uk,
+ Travis Place <wishie@wishie.net>,
+ Takashi Iwai <tiwai@suse.de>
+Subject: [patch 60/83] ALSA: hda - Make the HP EliteBook 8530p use AD1884A model laptop
+References: <20081211190201.612240183@mini.kroah.org>
+Content-Disposition: inline; filename=alsa-hda-make-the-hp-elitebook-8530p-use-ad1884a-model-laptop.patch
+Content-Length: 1079
+Lines: 26
+
+2.6.27-stable review patch.  If anyone has any objections, please let us know.
+
+------------------
+
+From: Travis Place <wishie@wishie.net>
+
+commit 254248313aed7e6ff295ca21a82ca989b1f69c16 upstream
+
+Added a QUIRK to patch_analog.c for the HP Elitebook 8530p
+(IDs 0x103c:0x30e7) to use AD1884A model 'laptop' by default.
+Playback and Capture confirmed working.
+
+Signed-off-by: Travis Place <wishie@wishie.net>
+Signed-off-by: Takashi Iwai <tiwai@suse.de>
+Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
+---
+ sound/pci/hda/patch_analog.c |    1 +
+ 1 file changed, 1 insertion(+)
+
+--- a/sound/pci/hda/patch_analog.c
++++ b/sound/pci/hda/patch_analog.c
+@@ -3848,6 +3848,7 @@ static const char *ad1884a_models[AD1884
+ static struct snd_pci_quirk ad1884a_cfg_tbl[] = {
+       SND_PCI_QUIRK(0x103c, 0x3030, "HP", AD1884A_MOBILE),
+       SND_PCI_QUIRK(0x103c, 0x3056, "HP", AD1884A_MOBILE),
++      SND_PCI_QUIRK(0x103c, 0x30e7, "HP EliteBook 8530p", AD1884A_LAPTOP),
+       SND_PCI_QUIRK(0x103c, 0x3614, "HP 6730s", AD1884A_LAPTOP),
+       SND_PCI_QUIRK(0x17aa, 0x20ac, "Thinkpad X300", AD1884A_THINKPAD),
+       {}
+
+
+From gregkh@mini.kroah.org Thu Dec 11 11:04:46 2008
+Message-Id: <20081211190445.822554622@mini.kroah.org>
+User-Agent: quilt/0.47-1
+Date: Thu, 11 Dec 2008 11:03:02 -0800
+From: Greg KH <gregkh@suse.de>
+To: linux-kernel@vger.kernel.org,
+ stable@kernel.org
+Cc: Justin Forbes <jmforbes@linuxtx.org>,
+ Zwane Mwaikambo <zwane@arm.linux.org.uk>,
+ Theodore Ts'o <tytso@mit.edu>,
+ Randy Dunlap <rdunlap@xenotime.net>,
+ Dave Jones <davej@redhat.com>,
+ Chuck Wolber <chuckw@quantumlinux.com>,
+ Chris Wedgwood <reviews@ml.cw.f00f.org>,
+ Michael Krufky <mkrufky@linuxtv.org>,
+ Chuck Ebbert <cebbert@redhat.com>,
+ Domenico Andreoli <cavokz@gmail.com>,
+ Willy Tarreau <w@1wt.eu>,
+ Rodrigo Rubira Branco <rbranco@la.checkpoint.com>,
+ Jake Edge <jake@lwn.net>,
+ Eugene Teo <eteo@redhat.com>,
+ torvalds@linux-foundation.org,
+ akpm@linux-foundation.org,
+ alan@lxorguk.ukuu.org.uk,
+ Takashi Iwai <tiwai@suse.de>
+Subject: [patch 61/83] ALSA: hda - Add a quirk for Dell Studio 15
+References: <20081211190201.612240183@mini.kroah.org>
+Content-Disposition: inline; filename=alsa-hda-add-a-quirk-for-dell-studio-15.patch
+Content-Length: 794
+Lines: 24
+
+2.6.27-stable review patch.  If anyone has any objections, please let us know.
+
+------------------
+
+From: Takashi Iwai <tiwai@suse.de>
+
+commit b0fc5e043401df4cd243352f1030c4d23e767347 upstream
+
+Added the matching model=dell-m6 for Dell Studio 15 laptop.
+
+Signed-off-by: Takashi Iwai <tiwai@suse.de>
+Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
+---
+ sound/pci/hda/patch_sigmatel.c |    2 ++
+ 1 file changed, 2 insertions(+)
+
+--- a/sound/pci/hda/patch_sigmatel.c
++++ b/sound/pci/hda/patch_sigmatel.c
+@@ -1324,6 +1324,8 @@ static struct snd_pci_quirk stac92hd73xx
+                               "unknown Dell", STAC_DELL_M6),
+       SND_PCI_QUIRK(PCI_VENDOR_ID_DELL, 0x0271,
+                               "unknown Dell", STAC_DELL_M6),
++      SND_PCI_QUIRK(PCI_VENDOR_ID_DELL, 0x029f,
++                              "Dell Studio 15", STAC_DELL_M6),
+       {} /* terminator */
+ };
+
+
+From gregkh@mini.kroah.org Thu Dec 11 11:04:46 2008
+Message-Id: <20081211190446.027561754@mini.kroah.org>
+User-Agent: quilt/0.47-1
+Date: Thu, 11 Dec 2008 11:03:03 -0800
+From: Greg KH <gregkh@suse.de>
+To: linux-kernel@vger.kernel.org,
+ stable@kernel.org
+Cc: Justin Forbes <jmforbes@linuxtx.org>,
+ Zwane Mwaikambo <zwane@arm.linux.org.uk>,
+ Theodore Ts'o <tytso@mit.edu>,
+ Randy Dunlap <rdunlap@xenotime.net>,
+ Dave Jones <davej@redhat.com>,
+ Chuck Wolber <chuckw@quantumlinux.com>,
+ Chris Wedgwood <reviews@ml.cw.f00f.org>,
+ Michael Krufky <mkrufky@linuxtv.org>,
+ Chuck Ebbert <cebbert@redhat.com>,
+ Domenico Andreoli <cavokz@gmail.com>,
+ Willy Tarreau <w@1wt.eu>,
+ Rodrigo Rubira Branco <rbranco@la.checkpoint.com>,
+ Jake Edge <jake@lwn.net>,
+ Eugene Teo <eteo@redhat.com>,
+ torvalds@linux-foundation.org,
+ akpm@linux-foundation.org,
+ alan@lxorguk.ukuu.org.uk,
+ Takashi Iwai <tiwai@suse.de>
+Subject: [patch 62/83] ALSA: hda - No Headphone as Line-out swich without line-outs
+References: <20081211190201.612240183@mini.kroah.org>
+Content-Disposition: inline; filename=alsa-hda-no-headphone-as-line-out-swich-without-line-outs.patch
+Content-Length: 926
+Lines: 26
+
+2.6.27-stable review patch.  If anyone has any objections, please let us know.
+
+------------------
+
+From: Takashi Iwai <tiwai@suse.de>
+
+commit 95026623da32848bc93fbfb472dc8737487df450 upstream
+
+STAC/IDT driver creates "Headphone as Line-Out" switch even if there
+is no line-out pins on the machine.  For devices only with headpohnes
+and speaker-outs, this switch shouldn't be created.
+
+Signed-off-by: Takashi Iwai <tiwai@suse.de>
+Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
+---
+ sound/pci/hda/patch_sigmatel.c |    2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+--- a/sound/pci/hda/patch_sigmatel.c
++++ b/sound/pci/hda/patch_sigmatel.c
+@@ -2505,7 +2505,7 @@ static int stac92xx_auto_create_multi_ou
+               }
+       }
+-      if (cfg->hp_outs > 1) {
++      if (cfg->hp_outs > 1 && cfg->line_out_type == AUTO_PIN_LINE_OUT) {
+               err = stac92xx_add_control(spec,
+                       STAC_CTL_WIDGET_HP_SWITCH,
+                       "Headphone as Line Out Switch", 0);
+
+
+From gregkh@mini.kroah.org Thu Dec 11 11:04:46 2008
+Message-Id: <20081211190446.267769029@mini.kroah.org>
+User-Agent: quilt/0.47-1
+Date: Thu, 11 Dec 2008 11:03:04 -0800
+From: Greg KH <gregkh@suse.de>
+To: linux-kernel@vger.kernel.org,
+ stable@kernel.org
+Cc: Justin Forbes <jmforbes@linuxtx.org>,
+ Zwane Mwaikambo <zwane@arm.linux.org.uk>,
+ Theodore Ts'o <tytso@mit.edu>,
+ Randy Dunlap <rdunlap@xenotime.net>,
+ Dave Jones <davej@redhat.com>,
+ Chuck Wolber <chuckw@quantumlinux.com>,
+ Chris Wedgwood <reviews@ml.cw.f00f.org>,
+ Michael Krufky <mkrufky@linuxtv.org>,
+ Chuck Ebbert <cebbert@redhat.com>,
+ Domenico Andreoli <cavokz@gmail.com>,
+ Willy Tarreau <w@1wt.eu>,
+ Rodrigo Rubira Branco <rbranco@la.checkpoint.com>,
+ Jake Edge <jake@lwn.net>,
+ Eugene Teo <eteo@redhat.com>,
+ torvalds@linux-foundation.org,
+ akpm@linux-foundation.org,
+ alan@lxorguk.ukuu.org.uk,
+ Takashi Iwai <tiwai@suse.de>
+Subject: [patch 63/83] ALSA: hda - mark Dell studio 1535 quirk
+References: <20081211190201.612240183@mini.kroah.org>
+Content-Disposition: inline; filename=alsa-hda-mark-dell-studio-1535-quirk.patch
+Content-Length: 964
+Lines: 25
+
+2.6.27-stable review patch.  If anyone has any objections, please let us know.
+
+------------------
+
+From: Takashi Iwai <tiwai@suse.de>
+
+commit c65574abad288d7123bd49e7906fa53b7e420239 upstream
+
+Fixed the quirk string for Dell studio 1535 (the product name wasn't
+published at the time the patch was made).
+
+Signed-off-by: Takashi Iwai <tiwai@suse.de>
+Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
+---
+ sound/pci/hda/patch_sigmatel.c |    2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+--- a/sound/pci/hda/patch_sigmatel.c
++++ b/sound/pci/hda/patch_sigmatel.c
+@@ -1311,7 +1311,7 @@ static struct snd_pci_quirk stac92hd73xx
+       SND_PCI_QUIRK(PCI_VENDOR_ID_INTEL, 0x2668,
+                               "DFI LanParty", STAC_92HD73XX_REF),
+       SND_PCI_QUIRK(PCI_VENDOR_ID_DELL, 0x0254,
+-                              "unknown Dell", STAC_DELL_M6),
++                              "Dell Studio 1535", STAC_DELL_M6),
+       SND_PCI_QUIRK(PCI_VENDOR_ID_DELL, 0x0255,
+                               "unknown Dell", STAC_DELL_M6),
+       SND_PCI_QUIRK(PCI_VENDOR_ID_DELL, 0x0256,
+
+
+From gregkh@mini.kroah.org Thu Dec 11 11:04:46 2008
+Message-Id: <20081211190446.463042451@mini.kroah.org>
+User-Agent: quilt/0.47-1
+Date: Thu, 11 Dec 2008 11:03:05 -0800
+From: Greg KH <gregkh@suse.de>
+To: linux-kernel@vger.kernel.org,
+ stable@kernel.org
+Cc: Justin Forbes <jmforbes@linuxtx.org>,
+ Zwane Mwaikambo <zwane@arm.linux.org.uk>,
+ Theodore Ts'o <tytso@mit.edu>,
+ Randy Dunlap <rdunlap@xenotime.net>,
+ Dave Jones <davej@redhat.com>,
+ Chuck Wolber <chuckw@quantumlinux.com>,
+ Chris Wedgwood <reviews@ml.cw.f00f.org>,
+ Michael Krufky <mkrufky@linuxtv.org>,
+ Chuck Ebbert <cebbert@redhat.com>,
+ Domenico Andreoli <cavokz@gmail.com>,
+ Willy Tarreau <w@1wt.eu>,
+ Rodrigo Rubira Branco <rbranco@la.checkpoint.com>,
+ Jake Edge <jake@lwn.net>,
+ Eugene Teo <eteo@redhat.com>,
+ torvalds@linux-foundation.org,
+ akpm@linux-foundation.org,
+ alan@lxorguk.ukuu.org.uk,
+ Takashi Iwai <tiwai@suse.de>
+Subject: [patch 64/83] ALSA: emu10k1 - Add more invert_shared_spdif flag to Audigy models
+References: <20081211190201.612240183@mini.kroah.org>
+Content-Disposition: inline; filename=alsa-emu10k1-add-more-invert_shared_spdif-flag-to-audigy-models.patch
+Content-Length: 1462
+Lines: 41
+
+2.6.27-stable review patch.  If anyone has any objections, please let us know.
+
+------------------
+
+From: Takashi Iwai <tiwai@suse.de>
+
+commit 55e03a68d2489d116a5c5e8111ecef3f69831ed6 upstream.
+
+Reported in Novell bnc#440862:
+    https://bugzilla.novell.com/show_bug.cgi?id=440862
+
+Signed-off-by: Takashi Iwai <tiwai@suse.de>
+Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
+
+---
+ sound/pci/emu10k1/emu10k1_main.c |    3 +++
+ 1 file changed, 3 insertions(+)
+
+--- a/sound/pci/emu10k1/emu10k1_main.c
++++ b/sound/pci/emu10k1/emu10k1_main.c
+@@ -1464,6 +1464,7 @@ static struct snd_emu_chip_details emu_c
+        .ca0151_chip = 1,
+        .spk71 = 1,
+        .spdif_bug = 1,
++       .invert_shared_spdif = 1,      /* digital/analog switch swapped */
+        .ac97_chip = 1} ,
+       {.vendor = 0x1102, .device = 0x0004, .subsystem = 0x20021102,
+        .driver = "Audigy2", .name = "Audigy 2 ZS [SB0350]", 
+@@ -1473,6 +1474,7 @@ static struct snd_emu_chip_details emu_c
+        .ca0151_chip = 1,
+        .spk71 = 1,
+        .spdif_bug = 1,
++       .invert_shared_spdif = 1,      /* digital/analog switch swapped */
+        .ac97_chip = 1} ,
+       {.vendor = 0x1102, .device = 0x0004, .subsystem = 0x20011102,
+        .driver = "Audigy2", .name = "Audigy 2 ZS [2001]", 
+@@ -1482,6 +1484,7 @@ static struct snd_emu_chip_details emu_c
+        .ca0151_chip = 1,
+        .spk71 = 1,
+        .spdif_bug = 1,
++       .invert_shared_spdif = 1,      /* digital/analog switch swapped */
+        .ac97_chip = 1} ,
+       /* Audigy 2 */
+       /* Tested by James@superbug.co.uk 3rd July 2005 */
+
+
+From gregkh@mini.kroah.org Thu Dec 11 11:04:46 2008
+Message-Id: <20081211190446.690407241@mini.kroah.org>
+User-Agent: quilt/0.47-1
+Date: Thu, 11 Dec 2008 11:03:06 -0800
+From: Greg KH <gregkh@suse.de>
+To: linux-kernel@vger.kernel.org,
+ stable@kernel.org
+Cc: Justin Forbes <jmforbes@linuxtx.org>,
+ Zwane Mwaikambo <zwane@arm.linux.org.uk>,
+ Theodore Ts'o <tytso@mit.edu>,
+ Randy Dunlap <rdunlap@xenotime.net>,
+ Dave Jones <davej@redhat.com>,
+ Chuck Wolber <chuckw@quantumlinux.com>,
+ Chris Wedgwood <reviews@ml.cw.f00f.org>,
+ Michael Krufky <mkrufky@linuxtv.org>,
+ Chuck Ebbert <cebbert@redhat.com>,
+ Domenico Andreoli <cavokz@gmail.com>,
+ Willy Tarreau <w@1wt.eu>,
+ Rodrigo Rubira Branco <rbranco@la.checkpoint.com>,
+ Jake Edge <jake@lwn.net>,
+ Eugene Teo <eteo@redhat.com>,
+ torvalds@linux-foundation.org,
+ akpm@linux-foundation.org,
+ alan@lxorguk.ukuu.org.uk,
+ Divy Le Ray <divy@chelsio.com>,
+ "David S. Miller" <davem@davemloft.net>,
+ Karsten Keil <kkeil@novell.com>
+Subject: [patch 65/83] cxgb3 - fix race in EEH
+References: <20081211190201.612240183@mini.kroah.org>
+Content-Disposition: inline; filename=cxgb3-fix-race-in-eeh.patch
+Content-Length: 2854
+Lines: 94
+
+2.6.27-stable review patch.  If anyone has any objections, please let us know.
+
+------------------
+
+From: Divy Le Ray <divy@chelsio.com>
+
+commit 0ca41c0413a4d9ca58767d53d23accea9aa1cdef upstream.
+
+A SGE queue set timer might access registers while in EEH recovery,
+triggering an EEH error loop. Stop all timers early in EEH process.
+
+Signed-off-by: Divy Le Ray <divy@chelsio.com>
+Signed-off-by: David S. Miller <davem@davemloft.net>
+Cc: Karsten Keil <kkeil@novell.com>
+Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
+
+---
+ drivers/net/cxgb3/adapter.h    |    1 +
+ drivers/net/cxgb3/cxgb3_main.c |    5 +++++
+ drivers/net/cxgb3/sge.c        |   21 ++++++++++++++++++---
+ 3 files changed, 24 insertions(+), 3 deletions(-)
+
+--- a/drivers/net/cxgb3/adapter.h
++++ b/drivers/net/cxgb3/adapter.h
+@@ -285,6 +285,7 @@ void t3_os_link_changed(struct adapter *
+ void t3_sge_start(struct adapter *adap);
+ void t3_sge_stop(struct adapter *adap);
++void t3_stop_sge_timers(struct adapter *adap);
+ void t3_free_sge_resources(struct adapter *adap);
+ void t3_sge_err_intr_handler(struct adapter *adapter);
+ irq_handler_t t3_intr_handler(struct adapter *adap, int polling);
+--- a/drivers/net/cxgb3/cxgb3_main.c
++++ b/drivers/net/cxgb3/cxgb3_main.c
+@@ -479,6 +479,7 @@ static int setup_sge_qsets(struct adapte
+                                                            irq_idx,
+                               &adap->params.sge.qset[qset_idx], ntxq, dev);
+                       if (err) {
++                              t3_stop_sge_timers(adap);
+                               t3_free_sge_resources(adap);
+                               return err;
+                       }
+@@ -2449,6 +2450,9 @@ static pci_ers_result_t t3_io_error_dete
+           test_bit(OFFLOAD_DEVMAP_BIT, &adapter->open_device_map))
+               offload_close(&adapter->tdev);
++      /* Stop SGE timers */
++      t3_stop_sge_timers(adapter);
++
+       adapter->flags &= ~FULL_INIT_DONE;
+       pci_disable_device(pdev);
+@@ -2801,6 +2805,7 @@ static void __devexit remove_one(struct 
+                   if (test_bit(i, &adapter->registered_device_map))
+                       unregister_netdev(adapter->port[i]);
++              t3_stop_sge_timers(adapter);
+               t3_free_sge_resources(adapter);
+               cxgb_disable_msi(adapter);
+--- a/drivers/net/cxgb3/sge.c
++++ b/drivers/net/cxgb3/sge.c
+@@ -603,9 +603,6 @@ static void t3_free_qset(struct adapter 
+       int i;
+       struct pci_dev *pdev = adapter->pdev;
+-      if (q->tx_reclaim_timer.function)
+-              del_timer_sync(&q->tx_reclaim_timer);
+-
+       for (i = 0; i < SGE_RXQ_PER_SET; ++i)
+               if (q->fl[i].desc) {
+                       spin_lock_irq(&adapter->sge.reg_lock);
+@@ -3043,6 +3040,24 @@ err:
+ }
+ /**
++ *    t3_stop_sge_timers - stop SGE timer call backs
++ *    @adap: the adapter
++ *
++ *    Stops each SGE queue set's timer call back
++ */
++void t3_stop_sge_timers(struct adapter *adap)
++{
++      int i;
++
++      for (i = 0; i < SGE_QSETS; ++i) {
++              struct sge_qset *q = &adap->sge.qs[i];
++
++              if (q->tx_reclaim_timer.function)
++                      del_timer_sync(&q->tx_reclaim_timer);
++      }
++}
++
++/**
+  *    t3_free_sge_resources - free SGE resources
+  *    @adap: the adapter
+  *
+
+
+From gregkh@mini.kroah.org Thu Dec 11 11:04:47 2008
+Message-Id: <20081211190446.852704754@mini.kroah.org>
+User-Agent: quilt/0.47-1
+Date: Thu, 11 Dec 2008 11:03:07 -0800
+From: Greg KH <gregkh@suse.de>
+To: linux-kernel@vger.kernel.org,
+ stable@kernel.org
+Cc: Justin Forbes <jmforbes@linuxtx.org>,
+ Zwane Mwaikambo <zwane@arm.linux.org.uk>,
+ Theodore Ts'o <tytso@mit.edu>,
+ Randy Dunlap <rdunlap@xenotime.net>,
+ Dave Jones <davej@redhat.com>,
+ Chuck Wolber <chuckw@quantumlinux.com>,
+ Chris Wedgwood <reviews@ml.cw.f00f.org>,
+ Michael Krufky <mkrufky@linuxtv.org>,
+ Chuck Ebbert <cebbert@redhat.com>,
+ Domenico Andreoli <cavokz@gmail.com>,
+ Willy Tarreau <w@1wt.eu>,
+ Rodrigo Rubira Branco <rbranco@la.checkpoint.com>,
+ Jake Edge <jake@lwn.net>,
+ Eugene Teo <eteo@redhat.com>,
+ torvalds@linux-foundation.org,
+ akpm@linux-foundation.org,
+ alan@lxorguk.ukuu.org.uk,
+ Divy Le Ray <divy@chelsio.com>,
+ Jeff Garzik <jgarzik@redhat.com>,
+ Hannes Reinecke <hare@suse.de>
+Subject: [patch 66/83] cxgb3 - remove duplicate tests in lro
+References: <20081211190201.612240183@mini.kroah.org>
+Content-Disposition: inline; filename=cxgb3-remove-duplicate-tests-in-lro.patch
+Content-Length: 2156
+Lines: 68
+
+2.6.27-stable review patch.  If anyone has any objections, please let us know.
+
+------------------
+
+From: Divy Le Ray <divy@chelsio.com>
+
+commit 004f23b9d3874efc81d2d1cf18fd0fe48dc2f26f upstream.
+
+The generic lro code checks TCP flags/options.
+Remove duplicate tests done in the driver.
+
+Signed-off-by: Divy Le Ray <divy@chelsio.com>
+Signed-off-by: Jeff Garzik <jgarzik@redhat.com>
+Cc: Hannes Reinecke <hare@suse.de>
+Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
+
+---
+ drivers/net/cxgb3/sge.c |   35 -----------------------------------
+ 1 file changed, 35 deletions(-)
+
+--- a/drivers/net/cxgb3/sge.c
++++ b/drivers/net/cxgb3/sge.c
+@@ -1934,38 +1934,6 @@ static inline int lro_frame_ok(const str
+               eh->h_proto == htons(ETH_P_IP) && ih->ihl == (sizeof(*ih) >> 2);
+ }
+-#define TCP_FLAG_MASK (TCP_FLAG_CWR | TCP_FLAG_ECE | TCP_FLAG_URG |\
+-                       TCP_FLAG_ACK | TCP_FLAG_PSH | TCP_FLAG_RST |\
+-                                     TCP_FLAG_SYN | TCP_FLAG_FIN)
+-#define TSTAMP_WORD ((TCPOPT_NOP << 24) | (TCPOPT_NOP << 16) |\
+-                     (TCPOPT_TIMESTAMP << 8) | TCPOLEN_TIMESTAMP)
+-
+-/**
+- *    lro_segment_ok - check if a TCP segment is eligible for LRO
+- *    @tcph: the TCP header of the packet
+- *
+- *    Returns true if a TCP packet is eligible for LRO.  This requires that
+- *    the packet have only the ACK flag set and no TCP options besides
+- *    time stamps.
+- */
+-static inline int lro_segment_ok(const struct tcphdr *tcph)
+-{
+-      int optlen;
+-
+-      if (unlikely((tcp_flag_word(tcph) & TCP_FLAG_MASK) != TCP_FLAG_ACK))
+-              return 0;
+-
+-      optlen = (tcph->doff << 2) - sizeof(*tcph);
+-      if (optlen) {
+-              const u32 *opt = (const u32 *)(tcph + 1);
+-
+-              if (optlen != TCPOLEN_TSTAMP_ALIGNED ||
+-                  *opt != htonl(TSTAMP_WORD) || !opt[2])
+-                      return 0;
+-      }
+-      return 1;
+-}
+-
+ static int t3_get_lro_header(void **eh,  void **iph, void **tcph,
+                            u64 *hdr_flags, void *priv)
+ {
+@@ -1978,9 +1946,6 @@ static int t3_get_lro_header(void **eh, 
+       *iph = (struct iphdr *)((struct ethhdr *)*eh + 1);
+       *tcph = (struct tcphdr *)((struct iphdr *)*iph + 1);
+-       if (!lro_segment_ok(*tcph))
+-              return -1;
+-
+       *hdr_flags = LRO_IPV4 | LRO_TCP;
+       return 0;
+ }
+
+
+From gregkh@mini.kroah.org Thu Dec 11 11:04:47 2008
+Message-Id: <20081211190447.021453015@mini.kroah.org>
+User-Agent: quilt/0.47-1
+Date: Thu, 11 Dec 2008 11:03:08 -0800
+From: Greg KH <gregkh@suse.de>
+To: linux-kernel@vger.kernel.org,
+ stable@kernel.org
+Cc: Justin Forbes <jmforbes@linuxtx.org>,
+ Zwane Mwaikambo <zwane@arm.linux.org.uk>,
+ Theodore Ts'o <tytso@mit.edu>,
+ Randy Dunlap <rdunlap@xenotime.net>,
+ Dave Jones <davej@redhat.com>,
+ Chuck Wolber <chuckw@quantumlinux.com>,
+ Chris Wedgwood <reviews@ml.cw.f00f.org>,
+ Michael Krufky <mkrufky@linuxtv.org>,
+ Chuck Ebbert <cebbert@redhat.com>,
+ Domenico Andreoli <cavokz@gmail.com>,
+ Willy Tarreau <w@1wt.eu>,
+ Rodrigo Rubira Branco <rbranco@la.checkpoint.com>,
+ Jake Edge <jake@lwn.net>,
+ Eugene Teo <eteo@redhat.com>,
+ torvalds@linux-foundation.org,
+ akpm@linux-foundation.org,
+ alan@lxorguk.ukuu.org.uk,
+ Li Zefan <lizf@cn.fujitsu.com>,
+ Peter Zijlstra <a.p.zijlstra@chello.nl>,
+ Ingo Molnar <mingo@elte.hu>,
+ Gregory Haskins <ghaskins@novell.com>
+Subject: [patch 67/83] sched: fix a bug in sched domain degenerate
+References: <20081211190201.612240183@mini.kroah.org>
+Content-Disposition: inline; filename=sched-fix-a-bug-in-sched-domain-degenerate.patch
+Content-Length: 1630
+Lines: 57
+
+2.6.27-stable review patch.  If anyone has any objections, please let us know.
+
+------------------
+
+From: Li Zefan <lizf@cn.fujitsu.com>
+
+commit f29c9b1ccb52904ee442a933cf3dee628f9f4e62 upstream.
+
+Impact: re-add incorrectly eliminated sched domain layers
+
+(1) on i386 with SCHED_SMT and SCHED_MC enabled
+       # mount -t cgroup -o cpuset xxx /mnt
+       # echo 0 > /mnt/cpuset.sched_load_balance
+       # mkdir /mnt/0
+       # echo 0 > /mnt/0/cpuset.cpus
+       # dmesg
+       CPU0 attaching sched-domain:
+        domain 0: span 0 level CPU
+         groups: 0
+
+(2) on i386 with SCHED_MC enabled but SCHED_SMT disabled
+       # same with (1)
+       # dmesg
+       CPU0 attaching NULL sched-domain.
+
+The bug is that some sched domains may be skipped unintentionally when
+degenerating (optimizing) sched domains.
+
+Signed-off-by: Li Zefan <lizf@cn.fujitsu.com>
+Acked-by: Peter Zijlstra <a.p.zijlstra@chello.nl>
+Signed-off-by: Ingo Molnar <mingo@elte.hu>
+Cc: Gregory Haskins <ghaskins@novell.com>
+Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
+
+---
+ kernel/sched.c |    6 ++++--
+ 1 file changed, 4 insertions(+), 2 deletions(-)
+
+--- a/kernel/sched.c
++++ b/kernel/sched.c
+@@ -6802,15 +6802,17 @@ cpu_attach_domain(struct sched_domain *s
+       struct sched_domain *tmp;
+       /* Remove the sched domains which do not contribute to scheduling. */
+-      for (tmp = sd; tmp; tmp = tmp->parent) {
++      for (tmp = sd; tmp; ) {
+               struct sched_domain *parent = tmp->parent;
+               if (!parent)
+                       break;
++
+               if (sd_parent_degenerate(tmp, parent)) {
+                       tmp->parent = parent->parent;
+                       if (parent->parent)
+                               parent->parent->child = tmp;
+-              }
++              } else
++                      tmp = tmp->parent;
+       }
+       if (sd && sd_degenerate(sd)) {
+
+
+From gregkh@mini.kroah.org Thu Dec 11 11:04:47 2008
+Message-Id: <20081211190447.227474451@mini.kroah.org>
+User-Agent: quilt/0.47-1
+Date: Thu, 11 Dec 2008 11:03:09 -0800
+From: Greg KH <gregkh@suse.de>
+To: linux-kernel@vger.kernel.org,
+ stable@kernel.org
+Cc: Justin Forbes <jmforbes@linuxtx.org>,
+ Zwane Mwaikambo <zwane@arm.linux.org.uk>,
+ Theodore Ts'o <tytso@mit.edu>,
+ Randy Dunlap <rdunlap@xenotime.net>,
+ Dave Jones <davej@redhat.com>,
+ Chuck Wolber <chuckw@quantumlinux.com>,
+ Chris Wedgwood <reviews@ml.cw.f00f.org>,
+ Michael Krufky <mkrufky@linuxtv.org>,
+ Chuck Ebbert <cebbert@redhat.com>,
+ Domenico Andreoli <cavokz@gmail.com>,
+ Willy Tarreau <w@1wt.eu>,
+ Rodrigo Rubira Branco <rbranco@la.checkpoint.com>,
+ Jake Edge <jake@lwn.net>,
+ Eugene Teo <eteo@redhat.com>,
+ torvalds@linux-foundation.org,
+ akpm@linux-foundation.org,
+ alan@lxorguk.ukuu.org.uk,
+ Matt Fleming <mjf@gentoo.org>,
+ mingo@elte.hu,
+ venkatesh.pallipadi@intel.com,
+ Thomas Gleixner <tglx@linutronix.de>,
+ Takashi Iwai <tiwai@suse.de>
+Subject: [patch 68/83] x86: HPET: convert WARN_ON to WARN_ON_ONCE
+References: <20081211190201.612240183@mini.kroah.org>
+Content-Disposition: inline; filename=x86-hpet-convert-warn_on-to-warn_on_once.patch
+Content-Length: 1041
+Lines: 31
+
+2.6.27-stable review patch.  If anyone has any objections, please let us know.
+
+------------------
+
+From: Matt Fleming <mjf@gentoo.org>
+
+commit 1de5b0854623d30d01d72cd4ea323eb5f39d1f16 upstream.
+
+It is possible to flood the console with call traces if the WARN_ON
+condition is true because of the frequency with which this function is
+called.
+
+Signed-off-by: Matt Fleming <mjf@gentoo.org>
+Cc: mingo@elte.hu
+Cc: venkatesh.pallipadi@intel.com
+Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
+Cc: Takashi Iwai <tiwai@suse.de>
+Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
+
+---
+ arch/x86/kernel/hpet.c |    2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+--- a/arch/x86/kernel/hpet.c
++++ b/arch/x86/kernel/hpet.c
+@@ -283,7 +283,7 @@ static int hpet_legacy_next_event(unsign
+        * what we wrote hit the chip before we compare it to the
+        * counter.
+        */
+-      WARN_ON((u32)hpet_readl(HPET_T0_CMP) != cnt);
++      WARN_ON_ONCE((u32)hpet_readl(HPET_T0_CMP) != cnt);
+       return (s32)((u32)hpet_readl(HPET_COUNTER) - cnt) >= 0 ? -ETIME : 0;
+ }
+
+
+From gregkh@mini.kroah.org Thu Dec 11 11:04:47 2008
+Message-Id: <20081211190447.408254201@mini.kroah.org>
+User-Agent: quilt/0.47-1
+Date: Thu, 11 Dec 2008 11:03:10 -0800
+From: Greg KH <gregkh@suse.de>
+To: linux-kernel@vger.kernel.org,
+ stable@kernel.org
+Cc: Justin Forbes <jmforbes@linuxtx.org>,
+ Zwane Mwaikambo <zwane@arm.linux.org.uk>,
+ Theodore Ts'o <tytso@mit.edu>,
+ Randy Dunlap <rdunlap@xenotime.net>,
+ Dave Jones <davej@redhat.com>,
+ Chuck Wolber <chuckw@quantumlinux.com>,
+ Chris Wedgwood <reviews@ml.cw.f00f.org>,
+ Michael Krufky <mkrufky@linuxtv.org>,
+ Chuck Ebbert <cebbert@redhat.com>,
+ Domenico Andreoli <cavokz@gmail.com>,
+ Willy Tarreau <w@1wt.eu>,
+ Rodrigo Rubira Branco <rbranco@la.checkpoint.com>,
+ Jake Edge <jake@lwn.net>,
+ Eugene Teo <eteo@redhat.com>,
+ torvalds@linux-foundation.org,
+ akpm@linux-foundation.org,
+ alan@lxorguk.ukuu.org.uk,
+ Yinghai <yinghai@kernel.org>,
+ Ingo Molnar <mingo@elte.hu>
+Subject: [patch 69/83] x86, memory hotplug: remove wrong -1 in calling init_memory_mapping()
+References: <20081211190201.612240183@mini.kroah.org>
+Content-Disposition: inline; filename=x86-memory-hotplug-remove-wrong-1-in-calling-init_memory_mapping.patch
+Content-Length: 1072
+Lines: 35
+
+2.6.27-stable review patch.  If anyone has any objections, please let us know.
+
+------------------
+
+From: Shaohua Li <shaohua.li@intel.com>
+
+commit 60817c9b31ef7897d60bca2f384cbc316a3fdd8b upstream.
+
+Impact: fix crash with memory hotplug
+
+Shuahua Li found:
+
+| I just did some experiments on a desktop for memory hotplug and this bug
+| triggered a crash in my test.
+|
+| Yinghai's suggestion also fixed the bug.
+
+We don't need to round it, just remove that extra -1
+
+Signed-off-by: Yinghai <yinghai@kernel.org>
+Signed-off-by: Ingo Molnar <mingo@elte.hu>
+Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
+
+---
+ arch/x86/mm/init_64.c |    2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+--- a/arch/x86/mm/init_64.c
++++ b/arch/x86/mm/init_64.c
+@@ -721,7 +721,7 @@ int arch_add_memory(int nid, u64 start, 
+       unsigned long nr_pages = size >> PAGE_SHIFT;
+       int ret;
+-      last_mapped_pfn = init_memory_mapping(start, start + size-1);
++      last_mapped_pfn = init_memory_mapping(start, start + size);
+       if (last_mapped_pfn > max_pfn_mapped)
+               max_pfn_mapped = last_mapped_pfn;
+
+
+From gregkh@mini.kroah.org Thu Dec 11 11:04:47 2008
+Message-Id: <20081211190447.602708036@mini.kroah.org>
+User-Agent: quilt/0.47-1
+Date: Thu, 11 Dec 2008 11:03:11 -0800
+From: Greg KH <gregkh@suse.de>
+To: linux-kernel@vger.kernel.org,
+ stable@kernel.org
+Cc: Justin Forbes <jmforbes@linuxtx.org>,
+ Zwane Mwaikambo <zwane@arm.linux.org.uk>,
+ Theodore Ts'o <tytso@mit.edu>,
+ Randy Dunlap <rdunlap@xenotime.net>,
+ Dave Jones <davej@redhat.com>,
+ Chuck Wolber <chuckw@quantumlinux.com>,
+ Chris Wedgwood <reviews@ml.cw.f00f.org>,
+ Michael Krufky <mkrufky@linuxtv.org>,
+ Chuck Ebbert <cebbert@redhat.com>,
+ Domenico Andreoli <cavokz@gmail.com>,
+ Willy Tarreau <w@1wt.eu>,
+ Rodrigo Rubira Branco <rbranco@la.checkpoint.com>,
+ Jake Edge <jake@lwn.net>,
+ Eugene Teo <eteo@redhat.com>,
+ torvalds@linux-foundation.org,
+ akpm@linux-foundation.org,
+ alan@lxorguk.ukuu.org.uk,
+ Gary Hade <garyhade@us.ibm.com>,
+ Ingo Molnar <mingo@elte.hu>,
+ Jeff Mahoney <jeffm@suse.com>
+Subject: [patch 70/83] x86: remove debug code from arch_add_memory()
+References: <20081211190201.612240183@mini.kroah.org>
+Content-Disposition: inline; filename=x86-remove-debug-code-from-arch_add_memory.patch
+Content-Length: 1057
+Lines: 34
+
+2.6.27-stable review patch.  If anyone has any objections, please let us know.
+
+------------------
+
+From: Gary Hade <garyhade@us.ibm.com>
+
+commit fe8b868eccb9f85a0e231e35f0abac5b39bac801 upstream.
+
+Impact: remove incorrect WARN_ON(1)
+
+Gets rid of dmesg spam created during physical memory hot-add which
+will very likely confuse users.  The change removes what appears to
+be debugging code which I assume was unintentionally included in:
+
+  x86: arch/x86/mm/init_64.c printk fixes
+  commit 10f22dde556d1ed41d55355d1fb8ad495f9810c8
+
+Signed-off-by: Gary Hade <garyhade@us.ibm.com>
+Signed-off-by: Ingo Molnar <mingo@elte.hu>
+Acked-by: Jeff Mahoney <jeffm@suse.com>
+Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
+
+---
+ arch/x86/mm/init_64.c |    2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+--- a/arch/x86/mm/init_64.c
++++ b/arch/x86/mm/init_64.c
+@@ -726,7 +726,7 @@ int arch_add_memory(int nid, u64 start, 
+               max_pfn_mapped = last_mapped_pfn;
+       ret = __add_pages(zone, start_pfn, nr_pages);
+-      WARN_ON(1);
++      WARN_ON_ONCE(ret);
+       return ret;
+ }
+
+
+From gregkh@mini.kroah.org Thu Dec 11 11:04:47 2008
+Message-Id: <20081211190447.783774275@mini.kroah.org>
+User-Agent: quilt/0.47-1
+Date: Thu, 11 Dec 2008 11:03:12 -0800
+From: Greg KH <gregkh@suse.de>
+To: linux-kernel@vger.kernel.org,
+ stable@kernel.org
+Cc: Justin Forbes <jmforbes@linuxtx.org>,
+ Zwane Mwaikambo <zwane@arm.linux.org.uk>,
+ Theodore Ts'o <tytso@mit.edu>,
+ Randy Dunlap <rdunlap@xenotime.net>,
+ Dave Jones <davej@redhat.com>,
+ Chuck Wolber <chuckw@quantumlinux.com>,
+ Chris Wedgwood <reviews@ml.cw.f00f.org>,
+ Michael Krufky <mkrufky@linuxtv.org>,
+ Chuck Ebbert <cebbert@redhat.com>,
+ Domenico Andreoli <cavokz@gmail.com>,
+ Willy Tarreau <w@1wt.eu>,
+ Rodrigo Rubira Branco <rbranco@la.checkpoint.com>,
+ Jake Edge <jake@lwn.net>,
+ Eugene Teo <eteo@redhat.com>,
+ torvalds@linux-foundation.org,
+ akpm@linux-foundation.org,
+ alan@lxorguk.ukuu.org.uk,
+ Brian King <brking@linux.vnet.ibm.com>,
+ Peter Zijlstra <peterz@infradead.org>,
+ Ingo Molnar <mingo@elte.hu>
+Subject: [patch 71/83] sched: CPU remove deadlock fix
+References: <20081211190201.612240183@mini.kroah.org>
+Content-Disposition: inline; filename=sched-cpu-remove-deadlock-fix.patch
+Content-Length: 2149
+Lines: 50
+
+2.6.27-stable review patch.  If anyone has any objections, please let us know.
+
+------------------
+
+From: Brian King <brking@linux.vnet.ibm.com>
+
+commit 9a2bd244e18ffbb96c8b783210fda4eded7c7e6f upstream.
+
+Impact: fix possible deadlock in CPU hot-remove path
+
+This patch fixes a possible deadlock scenario in the CPU remove path.
+migration_call grabs rq->lock, then wakes up everything on rq->migration_queue
+with the lock held. Then one of the tasks on the migration queue ends up
+calling tg_shares_up which then also tries to acquire the same rq->lock.
+
+[c000000058eab2e0] c000000000502078 ._spin_lock_irqsave+0x98/0xf0
+[c000000058eab370] c00000000008011c .tg_shares_up+0x10c/0x20c
+[c000000058eab430] c00000000007867c .walk_tg_tree+0xc4/0xfc
+[c000000058eab4d0] c0000000000840c8 .try_to_wake_up+0xb0/0x3c4
+[c000000058eab590] c0000000000799a0 .__wake_up_common+0x6c/0xe0
+[c000000058eab640] c00000000007ada4 .complete+0x54/0x80
+[c000000058eab6e0] c000000000509fa8 .migration_call+0x5fc/0x6f8
+[c000000058eab7c0] c000000000504074 .notifier_call_chain+0x68/0xe0
+[c000000058eab860] c000000000506568 ._cpu_down+0x2b0/0x3f4
+[c000000058eaba60] c000000000506750 .cpu_down+0xa4/0x108
+[c000000058eabb10] c000000000507e54 .store_online+0x44/0xa8
+[c000000058eabba0] c000000000396260 .sysdev_store+0x3c/0x50
+[c000000058eabc10] c0000000001a39b8 .sysfs_write_file+0x124/0x18c
+[c000000058eabcd0] c00000000013061c .vfs_write+0xd0/0x1bc
+[c000000058eabd70] c0000000001308a4 .sys_write+0x68/0x114
+[c000000058eabe30] c0000000000086b4 syscall_exit+0x0/0x40
+
+Signed-off-by: Brian King <brking@linux.vnet.ibm.com>
+Acked-by: Peter Zijlstra <peterz@infradead.org>
+Signed-off-by: Ingo Molnar <mingo@elte.hu>
+Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
+
+---
+ kernel/sched.c |    2 ++
+ 1 file changed, 2 insertions(+)
+
+--- a/kernel/sched.c
++++ b/kernel/sched.c
+@@ -6500,7 +6500,9 @@ migration_call(struct notifier_block *nf
+                       req = list_entry(rq->migration_queue.next,
+                                        struct migration_req, list);
+                       list_del_init(&req->list);
++                      spin_unlock_irq(&rq->lock);
+                       complete(&req->done);
++                      spin_lock_irq(&rq->lock);
+               }
+               spin_unlock_irq(&rq->lock);
+               break;
+
+
+From gregkh@mini.kroah.org Thu Dec 11 11:04:48 2008
+Message-Id: <20081211190447.948874938@mini.kroah.org>
+User-Agent: quilt/0.47-1
+Date: Thu, 11 Dec 2008 11:03:13 -0800
+From: Greg KH <gregkh@suse.de>
+To: linux-kernel@vger.kernel.org,
+ stable@kernel.org
+Cc: Justin Forbes <jmforbes@linuxtx.org>,
+ Zwane Mwaikambo <zwane@arm.linux.org.uk>,
+ Theodore Ts'o <tytso@mit.edu>,
+ Randy Dunlap <rdunlap@xenotime.net>,
+ Dave Jones <davej@redhat.com>,
+ Chuck Wolber <chuckw@quantumlinux.com>,
+ Chris Wedgwood <reviews@ml.cw.f00f.org>,
+ Michael Krufky <mkrufky@linuxtv.org>,
+ Chuck Ebbert <cebbert@redhat.com>,
+ Domenico Andreoli <cavokz@gmail.com>,
+ Willy Tarreau <w@1wt.eu>,
+ Rodrigo Rubira Branco <rbranco@la.checkpoint.com>,
+ Jake Edge <jake@lwn.net>,
+ Eugene Teo <eteo@redhat.com>,
+ torvalds@linux-foundation.org,
+ akpm@linux-foundation.org,
+ alan@lxorguk.ukuu.org.uk,
+ Alex Chiang <achiang@hp.com>,
+ Jesse Barnes <jbarnes@virtuousgeek.org>
+Subject: [patch 72/83] PCI: stop leaking slot_name in pci_create_slot
+References: <20081211190201.612240183@mini.kroah.org>
+Content-Disposition: inline; filename=pci-stop-leaking-slot_name-in-pci_create_slot.patch
+Content-Length: 834
+Lines: 27
+
+2.6.27-stable review patch.  If anyone has any objections, please let us know.
+
+------------------
+
+From: Alex Chiang <achiang@hp.com>
+
+commit 3b5dd45e947ecd21491e1658fba7bb4bc4a54995 upstream.
+
+In pci_create_slot(), the local variable 'slot_name' is allocated by
+make_slot_name(), but never freed. We never use it after passing it to
+the kobject core, so we should free it upon function exit.
+
+Signed-off-by: Alex Chiang <achiang@hp.com>
+Signed-off-by: Jesse Barnes <jbarnes@virtuousgeek.org>
+Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
+
+---
+ drivers/pci/slot.c |    1 +
+ 1 file changed, 1 insertion(+)
+
+--- a/drivers/pci/slot.c
++++ b/drivers/pci/slot.c
+@@ -243,6 +243,7 @@ placeholder:
+                __func__, pci_domain_nr(parent), parent->number, slot_nr);
+ out:
++      kfree(slot_name);
+       up_write(&pci_bus_sem);
+       return slot;
+ err:
+
+
+From gregkh@mini.kroah.org Thu Dec 11 11:04:48 2008
+Message-Id: <20081211190448.124035957@mini.kroah.org>
+User-Agent: quilt/0.47-1
+Date: Thu, 11 Dec 2008 11:03:14 -0800
+From: Greg KH <gregkh@suse.de>
+To: linux-kernel@vger.kernel.org,
+ stable@kernel.org
+Cc: Justin Forbes <jmforbes@linuxtx.org>,
+ Zwane Mwaikambo <zwane@arm.linux.org.uk>,
+ Theodore Ts'o <tytso@mit.edu>,
+ Randy Dunlap <rdunlap@xenotime.net>,
+ Dave Jones <davej@redhat.com>,
+ Chuck Wolber <chuckw@quantumlinux.com>,
+ Chris Wedgwood <reviews@ml.cw.f00f.org>,
+ Michael Krufky <mkrufky@linuxtv.org>,
+ Chuck Ebbert <cebbert@redhat.com>,
+ Domenico Andreoli <cavokz@gmail.com>,
+ Willy Tarreau <w@1wt.eu>,
+ Rodrigo Rubira Branco <rbranco@la.checkpoint.com>,
+ Jake Edge <jake@lwn.net>,
+ Eugene Teo <eteo@redhat.com>,
+ torvalds@linux-foundation.org,
+ akpm@linux-foundation.org,
+ alan@lxorguk.ukuu.org.uk,
+ Thomas Renninger <trenn@suse.de>,
+ Shaohua Li <shaohua.li@intel.com>,
+ Matthew Garrett <mjg59@srcf.ucam.org>,
+ Jesse Barnes <jbarnes@virtuousgeek.org>
+Subject: [patch 73/83] PCIe: ASPM: Break out of endless loop waiting for PCI config bits to switch
+References: <20081211190201.612240183@mini.kroah.org>
+Content-Disposition: inline; filename=pcie-aspm-break-out-of-endless-loop-waiting-for-pci-config-bits-to-switch.patch
+Content-Length: 2977
+Lines: 96
+
+2.6.27-stable review patch.  If anyone has any objections, please let us know.
+
+------------------
+
+From: Thomas Renninger <trenn@suse.de>
+
+commit 2a42d9dba7842422ffb2c02e75288a8bc2fd5065 upstream.
+
+Makes a Compaq 6735s boot reliably again.  It used to hang in the loop
+on some boots.  Give the link one second to train, otherwise break out
+of the loop and reset the previously set clock bits.
+
+Signed-off-by: Thomas Renninger <trenn@suse.de>
+Signed-off-by: Shaohua Li <shaohua.li@intel.com>
+Signed-off-by: Matthew Garrett <mjg59@srcf.ucam.org>
+Signed-off-by: Jesse Barnes <jbarnes@virtuousgeek.org>
+Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
+
+---
+ drivers/pci/pcie/aspm.c |   29 ++++++++++++++++++++++++++---
+ 1 file changed, 26 insertions(+), 3 deletions(-)
+
+--- a/drivers/pci/pcie/aspm.c
++++ b/drivers/pci/pcie/aspm.c
+@@ -16,6 +16,7 @@
+ #include <linux/pm.h>
+ #include <linux/init.h>
+ #include <linux/slab.h>
++#include <linux/jiffies.h>
+ #include <linux/pci-aspm.h>
+ #include "../pci.h"
+@@ -161,11 +162,12 @@ static void pcie_check_clock_pm(struct p
+  */
+ static void pcie_aspm_configure_common_clock(struct pci_dev *pdev)
+ {
+-      int pos, child_pos;
++      int pos, child_pos, i = 0;
+       u16 reg16 = 0;
+       struct pci_dev *child_dev;
+       int same_clock = 1;
+-
++      unsigned long start_jiffies;
++      u16 child_regs[8], parent_reg;
+       /*
+        * all functions of a slot should have the same Slot Clock
+        * Configuration, so just check one function
+@@ -191,16 +193,19 @@ static void pcie_aspm_configure_common_c
+               child_pos = pci_find_capability(child_dev, PCI_CAP_ID_EXP);
+               pci_read_config_word(child_dev, child_pos + PCI_EXP_LNKCTL,
+                       &reg16);
++              child_regs[i] = reg16;
+               if (same_clock)
+                       reg16 |= PCI_EXP_LNKCTL_CCC;
+               else
+                       reg16 &= ~PCI_EXP_LNKCTL_CCC;
+               pci_write_config_word(child_dev, child_pos + PCI_EXP_LNKCTL,
+                       reg16);
++              i++;
+       }
+       /* Configure upstream component */
+       pci_read_config_word(pdev, pos + PCI_EXP_LNKCTL, &reg16);
++      parent_reg = reg16;
+       if (same_clock)
+               reg16 |= PCI_EXP_LNKCTL_CCC;
+       else
+@@ -212,12 +217,30 @@ static void pcie_aspm_configure_common_c
+       pci_write_config_word(pdev, pos + PCI_EXP_LNKCTL, reg16);
+       /* Wait for link training end */
+-      while (1) {
++      /* break out after waiting for 1 second */
++      start_jiffies = jiffies;
++      while ((jiffies - start_jiffies) < HZ) {
+               pci_read_config_word(pdev, pos + PCI_EXP_LNKSTA, &reg16);
+               if (!(reg16 & PCI_EXP_LNKSTA_LT))
+                       break;
+               cpu_relax();
+       }
++      /* training failed -> recover */
++      if ((jiffies - start_jiffies) >= HZ) {
++              dev_printk (KERN_ERR, &pdev->dev, "ASPM: Could not configure"
++                          " common clock\n");
++              i = 0;
++              list_for_each_entry(child_dev, &pdev->subordinate->devices,
++                                  bus_list) {
++                      child_pos = pci_find_capability(child_dev,
++                                                      PCI_CAP_ID_EXP);
++                      pci_write_config_word(child_dev,
++                                            child_pos + PCI_EXP_LNKCTL,
++                                            child_regs[i]);
++                      i++;
++              }
++              pci_write_config_word(pdev, pos + PCI_EXP_LNKCTL, parent_reg);
++      }
+ }
+ /*
+
+
+From gregkh@mini.kroah.org Thu Dec 11 11:04:48 2008
+Message-Id: <20081211190448.303291840@mini.kroah.org>
+User-Agent: quilt/0.47-1
+Date: Thu, 11 Dec 2008 11:03:15 -0800
+From: Greg KH <gregkh@suse.de>
+To: linux-kernel@vger.kernel.org,
+ stable@kernel.org
+Cc: Justin Forbes <jmforbes@linuxtx.org>,
+ Zwane Mwaikambo <zwane@arm.linux.org.uk>,
+ Theodore Ts'o <tytso@mit.edu>,
+ Randy Dunlap <rdunlap@xenotime.net>,
+ Dave Jones <davej@redhat.com>,
+ Chuck Wolber <chuckw@quantumlinux.com>,
+ Chris Wedgwood <reviews@ml.cw.f00f.org>,
+ Michael Krufky <mkrufky@linuxtv.org>,
+ Chuck Ebbert <cebbert@redhat.com>,
+ Domenico Andreoli <cavokz@gmail.com>,
+ Willy Tarreau <w@1wt.eu>,
+ Rodrigo Rubira Branco <rbranco@la.checkpoint.com>,
+ Jake Edge <jake@lwn.net>,
+ Eugene Teo <eteo@redhat.com>,
+ torvalds@linux-foundation.org,
+ akpm@linux-foundation.org,
+ alan@lxorguk.ukuu.org.uk,
+ Balbir Singh <balbir@linux.vnet.ibm.com>,
+ Jeff Dike <jdike@addtoit.com>
+Subject: [patch 74/83] uml: boot broken due to buffer overrun
+References: <20081211190201.612240183@mini.kroah.org>
+Content-Disposition: inline; filename=uml-boot-broken-due-to-buffer-overrun.patch
+Content-Length: 1589
+Lines: 44
+
+2.6.27-stable review patch.  If anyone has any objections, please let us know.
+
+------------------
+
+From: Balbir Singh <balbir@linux.vnet.ibm.com>
+
+commit 361371201b60ffd686a694c848c1d5ad6061725f upstream.
+
+mconsole_init() passed 256 bytes as length in os_create_unix_socket, while
+the sizeof UNIX_PATH_MAX is 108. This patch fixes that problem and avoids
+a big overrun bug reported on UML bootup.
+
+sockaddr_un.sun_path is UNIX_PATH_MAX long which causes the problem.
+Reported-by: Vikas K Managutte <vikki.km@gmail.com>
+Reported-by: Sarvesh Kumar Lal Das <skldas@gmail.com>
+Signed-off-by: Balbir Singh <balbir@linux.vnet.ibm.com>
+Reviewed-by: Pekka Enberg <penberg@cs.helsinki.fi>
+Reviewed-by: WANG Cong <wangcong@zeuux.org>
+Cc: Jeff Dike <jdike@addtoit.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>
+
+---
+ arch/um/drivers/mconsole_kern.c |    4 +++-
+ 1 file changed, 3 insertions(+), 1 deletion(-)
+
+--- a/arch/um/drivers/mconsole_kern.c
++++ b/arch/um/drivers/mconsole_kern.c
+@@ -16,6 +16,8 @@
+ #include <linux/slab.h>
+ #include <linux/syscalls.h>
+ #include <linux/utsname.h>
++#include <linux/socket.h>
++#include <linux/un.h>
+ #include <linux/workqueue.h>
+ #include <linux/mutex.h>
+ #include <asm/uaccess.h>
+@@ -785,7 +787,7 @@ static int __init mconsole_init(void)
+       /* long to avoid size mismatch warnings from gcc */
+       long sock;
+       int err;
+-      char file[256];
++      char file[UNIX_PATH_MAX];
+       if (umid_file_name("mconsole", file, sizeof(file)))
+               return -1;
+
+
+From gregkh@mini.kroah.org Thu Dec 11 11:04:48 2008
+Message-Id: <20081211190448.505343357@mini.kroah.org>
+User-Agent: quilt/0.47-1
+Date: Thu, 11 Dec 2008 11:03:16 -0800
+From: Greg KH <gregkh@suse.de>
+To: linux-kernel@vger.kernel.org,
+ stable@kernel.org
+Cc: Justin Forbes <jmforbes@linuxtx.org>,
+ Zwane Mwaikambo <zwane@arm.linux.org.uk>,
+ Theodore Ts'o <tytso@mit.edu>,
+ Randy Dunlap <rdunlap@xenotime.net>,
+ Dave Jones <davej@redhat.com>,
+ Chuck Wolber <chuckw@quantumlinux.com>,
+ Chris Wedgwood <reviews@ml.cw.f00f.org>,
+ Michael Krufky <mkrufky@linuxtv.org>,
+ Chuck Ebbert <cebbert@redhat.com>,
+ Domenico Andreoli <cavokz@gmail.com>,
+ Willy Tarreau <w@1wt.eu>,
+ Rodrigo Rubira Branco <rbranco@la.checkpoint.com>,
+ Jake Edge <jake@lwn.net>,
+ Eugene Teo <eteo@redhat.com>,
+ torvalds@linux-foundation.org,
+ akpm@linux-foundation.org,
+ alan@lxorguk.ukuu.org.uk,
+ Matt Mackall <mpm@selenic.com>,
+ Alexey Dobriyan <adobriyan@gmail.com>,
+ Dave Hansen <dave@linux.vnet.ibm.com>
+Subject: [patch 75/83] pagemap: fix 32-bit pagemap regression
+References: <20081211190201.612240183@mini.kroah.org>
+Content-Disposition: inline; filename=pagemap-fix-32-bit-pagemap-regression.patch
+Content-Length: 1302
+Lines: 36
+
+2.6.27-stable review patch.  If anyone has any objections, please let us know.
+
+------------------
+
+From: Matt Mackall <mpm@selenic.com>
+
+commit 49c50342c728344b79c8f9e8293637fe80ef5ad5 upstream.
+
+The large pages fix from bcf8039ed45 broke 32-bit pagemap by pulling the
+pagemap entry code out into a function with the wrong return type.
+Pagemap entries are 64 bits on all systems and unsigned long is only 32
+bits on 32-bit systems.
+
+Signed-off-by: Matt Mackall <mpm@selenic.com>
+Reported-by: Doug Graham <dgraham@nortel.com>
+Cc: Alexey Dobriyan <adobriyan@gmail.com>
+Cc: Dave Hansen <dave@linux.vnet.ibm.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>
+
+---
+ fs/proc/task_mmu.c |    4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+--- a/fs/proc/task_mmu.c
++++ b/fs/proc/task_mmu.c
+@@ -563,9 +563,9 @@ static u64 swap_pte_to_pagemap_entry(pte
+       return swp_type(e) | (swp_offset(e) << MAX_SWAPFILES_SHIFT);
+ }
+-static unsigned long pte_to_pagemap_entry(pte_t pte)
++static u64 pte_to_pagemap_entry(pte_t pte)
+ {
+-      unsigned long pme = 0;
++      u64 pme = 0;
+       if (is_swap_pte(pte))
+               pme = PM_PFRAME(swap_pte_to_pagemap_entry(pte))
+                       | PM_PSHIFT(PAGE_SHIFT) | PM_SWAP;
+
+
+From gregkh@mini.kroah.org Thu Dec 11 11:04:48 2008
+Message-Id: <20081211190448.676978928@mini.kroah.org>
+User-Agent: quilt/0.47-1
+Date: Thu, 11 Dec 2008 11:03:17 -0800
+From: Greg KH <gregkh@suse.de>
+To: linux-kernel@vger.kernel.org,
+ stable@kernel.org
+Cc: Justin Forbes <jmforbes@linuxtx.org>,
+ Zwane Mwaikambo <zwane@arm.linux.org.uk>,
+ Theodore Ts'o <tytso@mit.edu>,
+ Randy Dunlap <rdunlap@xenotime.net>,
+ Dave Jones <davej@redhat.com>,
+ Chuck Wolber <chuckw@quantumlinux.com>,
+ Chris Wedgwood <reviews@ml.cw.f00f.org>,
+ Michael Krufky <mkrufky@linuxtv.org>,
+ Chuck Ebbert <cebbert@redhat.com>,
+ Domenico Andreoli <cavokz@gmail.com>,
+ Willy Tarreau <w@1wt.eu>,
+ Rodrigo Rubira Branco <rbranco@la.checkpoint.com>,
+ Jake Edge <jake@lwn.net>,
+ Eugene Teo <eteo@redhat.com>,
+ torvalds@linux-foundation.org,
+ akpm@linux-foundation.org,
+ alan@lxorguk.ukuu.org.uk,
+ Hugh Dickins <hugh@veritas.com>
+Subject: [patch 76/83] fix mapping_writably_mapped()
+References: <20081211190201.612240183@mini.kroah.org>
+Content-Disposition: inline; filename=fix-mapping_writably_mapped.patch
+Content-Length: 2674
+Lines: 66
+
+2.6.27-stable review patch.  If anyone has any objections, please let us know.
+
+------------------
+
+From: Hugh Dickins <hugh@veritas.com>
+
+commit b88ed20594db2c685555b68c52b693b75738b2f5 upstream.
+
+Lee Schermerhorn noticed yesterday that I broke the mapping_writably_mapped
+test in 2.6.7!  Bad bad bug, good good find.
+
+The i_mmap_writable count must be incremented for VM_SHARED (just as
+i_writecount is for VM_DENYWRITE, but while holding the i_mmap_lock)
+when dup_mmap() copies the vma for fork: it has its own more optimal
+version of __vma_link_file(), and I missed this out.  So the count
+was later going down to 0 (dangerous) when one end unmapped, then
+wrapping negative (inefficient) when the other end unmapped.
+
+The only impact on x86 would have been that setting a mandatory lock on
+a file which has at some time been opened O_RDWR and mapped MAP_SHARED
+(but not necessarily PROT_WRITE) across a fork, might fail with -EAGAIN
+when it should succeed, or succeed when it should fail.
+
+But those architectures which rely on flush_dcache_page() to flush
+userspace modifications back into the page before the kernel reads it,
+may in some cases have skipped the flush after such a fork - though any
+repetitive test will soon wrap the count negative, in which case it will
+flush_dcache_page() unnecessarily.
+
+Fix would be a two-liner, but mapping variable added, and comment moved.
+
+Reported-by: Lee Schermerhorn <Lee.Schermerhorn@hp.com>
+Signed-off-by: Hugh Dickins <hugh@veritas.com>
+Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
+Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
+
+---
+ kernel/fork.c |   15 +++++++++------
+ 1 file changed, 9 insertions(+), 6 deletions(-)
+
+--- a/kernel/fork.c
++++ b/kernel/fork.c
+@@ -313,17 +313,20 @@ static int dup_mmap(struct mm_struct *mm
+               file = tmp->vm_file;
+               if (file) {
+                       struct inode *inode = file->f_path.dentry->d_inode;
++                      struct address_space *mapping = file->f_mapping;
++
+                       get_file(file);
+                       if (tmp->vm_flags & VM_DENYWRITE)
+                               atomic_dec(&inode->i_writecount);
+-
+-                      /* insert tmp into the share list, just after mpnt */
+-                      spin_lock(&file->f_mapping->i_mmap_lock);
++                      spin_lock(&mapping->i_mmap_lock);
++                      if (tmp->vm_flags & VM_SHARED)
++                              mapping->i_mmap_writable++;
+                       tmp->vm_truncate_count = mpnt->vm_truncate_count;
+-                      flush_dcache_mmap_lock(file->f_mapping);
++                      flush_dcache_mmap_lock(mapping);
++                      /* insert tmp into the share list, just after mpnt */
+                       vma_prio_tree_add(tmp, mpnt);
+-                      flush_dcache_mmap_unlock(file->f_mapping);
+-                      spin_unlock(&file->f_mapping->i_mmap_lock);
++                      flush_dcache_mmap_unlock(mapping);
++                      spin_unlock(&mapping->i_mmap_lock);
+               }
+               /*
+
+
+From gregkh@mini.kroah.org Thu Dec 11 11:04:49 2008
+Message-Id: <20081211190448.856332799@mini.kroah.org>
+User-Agent: quilt/0.47-1
+Date: Thu, 11 Dec 2008 11:03:18 -0800
+From: Greg KH <gregkh@suse.de>
+To: linux-kernel@vger.kernel.org,
+ stable@kernel.org
+Cc: Justin Forbes <jmforbes@linuxtx.org>,
+ Zwane Mwaikambo <zwane@arm.linux.org.uk>,
+ Theodore Ts'o <tytso@mit.edu>,
+ Randy Dunlap <rdunlap@xenotime.net>,
+ Dave Jones <davej@redhat.com>,
+ Chuck Wolber <chuckw@quantumlinux.com>,
+ Chris Wedgwood <reviews@ml.cw.f00f.org>,
+ Michael Krufky <mkrufky@linuxtv.org>,
+ Chuck Ebbert <cebbert@redhat.com>,
+ Domenico Andreoli <cavokz@gmail.com>,
+ Willy Tarreau <w@1wt.eu>,
+ Rodrigo Rubira Branco <rbranco@la.checkpoint.com>,
+ Jake Edge <jake@lwn.net>,
+ Eugene Teo <eteo@redhat.com>,
+ torvalds@linux-foundation.org,
+ akpm@linux-foundation.org,
+ alan@lxorguk.ukuu.org.uk,
+ Peter Korsgaard <jacmet@sunsite.dk>,
+ Jiri Kosina <jkosina@suse.cz>
+Subject: [patch 77/83] atv: hid quirk for appletv IR receiver
+References: <20081211190201.612240183@mini.kroah.org>
+Content-Disposition: inline; filename=atv-hid-quirk-for-appletv-ir-receiver.patch
+Content-Length: 1453
+Lines: 33
+
+2.6.27-stable review patch.  If anyone has any objections, please let us know.
+
+------------------
+
+From: Peter Korsgaard <jacmet@sunsite.dk>
+
+(2.6.27 backport of 0f492f2a)
+
+Similar to the existing IRCONTROL4 handling
+
+Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
+Signed-off-by: Jiri Kosina <jkosina@suse.cz>
+Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
+
+---
+ drivers/hid/usbhid/hid-quirks.c |    2 ++
+ 1 file changed, 2 insertions(+)
+
+--- a/drivers/hid/usbhid/hid-quirks.c
++++ b/drivers/hid/usbhid/hid-quirks.c
+@@ -83,6 +83,7 @@
+ #define USB_DEVICE_ID_APPLE_WELLSPRING2_JIS   0x0232
+ #define USB_DEVICE_ID_APPLE_FOUNTAIN_TP_ONLY  0x030a
+ #define USB_DEVICE_ID_APPLE_GEYSER1_TP_ONLY   0x030b
++#define USB_DEVICE_ID_APPLE_ATV_IRCONTROL     0x8241
+ #define USB_DEVICE_ID_APPLE_IRCONTROL4        0x8242
+ #define USB_VENDOR_ID_ASUS            0x0b05
+@@ -458,6 +459,7 @@ static const struct hid_blacklist {
+       { USB_VENDOR_ID_AFATECH, USB_DEVICE_ID_AFATECH_AF9016, HID_QUIRK_FULLSPEED_INTERVAL },
+       { USB_VENDOR_ID_BELKIN, USB_DEVICE_ID_FLIP_KVM, HID_QUIRK_HIDDEV },
++      { USB_VENDOR_ID_APPLE, USB_DEVICE_ID_APPLE_ATV_IRCONTROL, HID_QUIRK_HIDDEV | HID_QUIRK_IGNORE_HIDINPUT },
+       { USB_VENDOR_ID_APPLE, USB_DEVICE_ID_APPLE_IRCONTROL4, HID_QUIRK_HIDDEV | HID_QUIRK_IGNORE_HIDINPUT },
+       { USB_VENDOR_ID_SAMSUNG, USB_DEVICE_ID_SAMSUNG_IR_REMOTE, HID_QUIRK_HIDDEV | HID_QUIRK_IGNORE_HIDINPUT },
+       { USB_VENDOR_ID_MICROSOFT, USB_DEVICE_ID_SIDEWINDER_GV, HID_QUIRK_HIDINPUT },
+
+
+From gregkh@mini.kroah.org Thu Dec 11 11:04:49 2008
+Message-Id: <20081211190449.041480981@mini.kroah.org>
+User-Agent: quilt/0.47-1
+Date: Thu, 11 Dec 2008 11:03:19 -0800
+From: Greg KH <gregkh@suse.de>
+To: linux-kernel@vger.kernel.org,
+ stable@kernel.org
+Cc: Justin Forbes <jmforbes@linuxtx.org>,
+ Zwane Mwaikambo <zwane@arm.linux.org.uk>,
+ Theodore Ts'o <tytso@mit.edu>,
+ Randy Dunlap <rdunlap@xenotime.net>,
+ Dave Jones <davej@redhat.com>,
+ Chuck Wolber <chuckw@quantumlinux.com>,
+ Chris Wedgwood <reviews@ml.cw.f00f.org>,
+ Michael Krufky <mkrufky@linuxtv.org>,
+ Chuck Ebbert <cebbert@redhat.com>,
+ Domenico Andreoli <cavokz@gmail.com>,
+ Willy Tarreau <w@1wt.eu>,
+ Rodrigo Rubira Branco <rbranco@la.checkpoint.com>,
+ Jake Edge <jake@lwn.net>,
+ Eugene Teo <eteo@redhat.com>,
+ torvalds@linux-foundation.org,
+ akpm@linux-foundation.org,
+ alan@lxorguk.ukuu.org.uk,
+ "Kirill A. Shutemov" <kirill@shutemov.name>,
+ Pavel Emelyanov <xemul@openvz.org>,
+ Alexander Viro <viro@zeniv.linux.org.uk>
+Subject: [patch 78/83] Allow recursion in binfmt_script and binfmt_misc
+References: <20081211190201.612240183@mini.kroah.org>
+Content-Disposition: inline; filename=allow-recursion-in-binfmt_script-and-binfmt_misc.patch
+Content-Length: 3338
+Lines: 105
+
+2.6.27-stable review patch.  If anyone has any objections, please let us know.
+
+------------------
+
+From: Kirill A. Shutemov <kirill@shutemov.name>
+
+commit bf2a9a39639b8b51377905397a5005f444e9a892 upstream.
+
+binfmt_script and binfmt_misc disallow recursion to avoid stack overflow
+using sh_bang and misc_bang.  It causes problem in some cases:
+
+$ echo '#!/bin/ls' > /tmp/t0
+$ echo '#!/tmp/t0' > /tmp/t1
+$ echo '#!/tmp/t1' > /tmp/t2
+$ chmod +x /tmp/t*
+$ /tmp/t2
+zsh: exec format error: /tmp/t2
+
+Similar problem with binfmt_misc.
+
+This patch introduces field 'recursion_depth' into struct linux_binprm to
+track recursion level in binfmt_misc and binfmt_script.  If recursion
+level more then BINPRM_MAX_RECURSION it generates -ENOEXEC.
+
+[akpm@linux-foundation.org: make linux_binprm.recursion_depth a uint]
+Signed-off-by: Kirill A. Shutemov <kirill@shutemov.name>
+Cc: Pavel Emelyanov <xemul@openvz.org>
+Cc: Alexander Viro <viro@zeniv.linux.org.uk>
+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>
+
+---
+ fs/binfmt_em86.c        |    2 +-
+ fs/binfmt_misc.c        |    4 ++--
+ fs/binfmt_script.c      |    5 +++--
+ include/linux/binfmts.h |    2 ++
+ 4 files changed, 8 insertions(+), 5 deletions(-)
+
+--- a/fs/binfmt_em86.c
++++ b/fs/binfmt_em86.c
+@@ -43,7 +43,7 @@ static int load_em86(struct linux_binprm
+                       return -ENOEXEC;
+       }
+-      bprm->sh_bang = 1;      /* Well, the bang-shell is implicit... */
++      bprm->recursion_depth++; /* Well, the bang-shell is implicit... */
+       allow_write_access(bprm->file);
+       fput(bprm->file);
+       bprm->file = NULL;
+--- a/fs/binfmt_misc.c
++++ b/fs/binfmt_misc.c
+@@ -117,7 +117,7 @@ static int load_misc_binary(struct linux
+               goto _ret;
+       retval = -ENOEXEC;
+-      if (bprm->misc_bang)
++      if (bprm->recursion_depth > BINPRM_MAX_RECURSION)
+               goto _ret;
+       /* to keep locking time low, we copy the interpreter string */
+@@ -197,7 +197,7 @@ static int load_misc_binary(struct linux
+       if (retval < 0)
+               goto _error;
+-      bprm->misc_bang = 1;
++      bprm->recursion_depth++;
+       retval = search_binary_handler (bprm, regs);
+       if (retval < 0)
+--- a/fs/binfmt_script.c
++++ b/fs/binfmt_script.c
+@@ -22,14 +22,15 @@ static int load_script(struct linux_binp
+       char interp[BINPRM_BUF_SIZE];
+       int retval;
+-      if ((bprm->buf[0] != '#') || (bprm->buf[1] != '!') || (bprm->sh_bang)) 
++      if ((bprm->buf[0] != '#') || (bprm->buf[1] != '!') ||
++          (bprm->recursion_depth > BINPRM_MAX_RECURSION))
+               return -ENOEXEC;
+       /*
+        * This section does the #! interpretation.
+        * Sorta complicated, but hopefully it will work.  -TYT
+        */
+-      bprm->sh_bang = 1;
++      bprm->recursion_depth++;
+       allow_write_access(bprm->file);
+       fput(bprm->file);
+       bprm->file = NULL;
+--- a/include/linux/binfmts.h
++++ b/include/linux/binfmts.h
+@@ -36,6 +36,7 @@ struct linux_binprm{
+       unsigned long p; /* current top of mem */
+       unsigned int sh_bang:1,
+                    misc_bang:1;
++      unsigned int recursion_depth;
+       struct file * file;
+       int e_uid, e_gid;
+       kernel_cap_t cap_post_exec_permitted;
+@@ -58,6 +59,7 @@ struct linux_binprm{
+ #define BINPRM_FLAGS_EXECFD_BIT 1
+ #define BINPRM_FLAGS_EXECFD (1 << BINPRM_FLAGS_EXECFD_BIT)
++#define BINPRM_MAX_RECURSION 4
+ /*
+  * This structure defines the functions that are used to load the binary formats that
+
+
+From gregkh@mini.kroah.org Thu Dec 11 11:04:49 2008
+Message-Id: <20081211190449.213097835@mini.kroah.org>
+User-Agent: quilt/0.47-1
+Date: Thu, 11 Dec 2008 11:03:20 -0800
+From: Greg KH <gregkh@suse.de>
+To: linux-kernel@vger.kernel.org,
+ stable@kernel.org
+Cc: Justin Forbes <jmforbes@linuxtx.org>,
+ Zwane Mwaikambo <zwane@arm.linux.org.uk>,
+ Theodore Ts'o <tytso@mit.edu>,
+ Randy Dunlap <rdunlap@xenotime.net>,
+ Dave Jones <davej@redhat.com>,
+ Chuck Wolber <chuckw@quantumlinux.com>,
+ Chris Wedgwood <reviews@ml.cw.f00f.org>,
+ Michael Krufky <mkrufky@linuxtv.org>,
+ Chuck Ebbert <cebbert@redhat.com>,
+ Domenico Andreoli <cavokz@gmail.com>,
+ Willy Tarreau <w@1wt.eu>,
+ Rodrigo Rubira Branco <rbranco@la.checkpoint.com>,
+ Jake Edge <jake@lwn.net>,
+ Eugene Teo <eteo@redhat.com>,
+ torvalds@linux-foundation.org,
+ akpm@linux-foundation.org,
+ alan@lxorguk.ukuu.org.uk,
+ Ulrich Weigand <ulrich.weigand@de.ibm.com>,
+ Roland McGrath <roland@redhat.com>,
+ Arnd Bergmann <arnd@arndb.de>
+Subject: [patch 79/83] tracehook: exec double-reporting fix
+References: <20081211190201.612240183@mini.kroah.org>
+Content-Disposition: inline; filename=tracehook-exec-double-reporting-fix.patch
+Content-Length: 4729
+Lines: 162
+
+2.6.27-stable review patch.  If anyone has any objections, please let us know.
+
+------------------
+
+From: Roland McGrath <roland@redhat.com>
+
+commit 85f334666a771680472722eee43ae0fc8730a619 upstream.
+
+The patch 6341c39 "tracehook: exec" introduced a small regression in
+2.6.27 regarding binfmt_misc exec event reporting.  Since the reporting
+is now done in the common search_binary_handler() function, an exec
+of a misc binary will result in two (or possibly multiple) exec events
+being reported, instead of just a single one, because the misc handler
+contains a recursive call to search_binary_handler.
+
+To add to the confusion, if PTRACE_O_TRACEEXEC is not active, the multiple
+SIGTRAP signals will in fact cause only a single ptrace intercept, as the
+signals are not queued.  However, if PTRACE_O_TRACEEXEC is on, the debugger
+will actually see multiple ptrace intercepts (PTRACE_EVENT_EXEC).
+
+The test program included below demonstrates the problem.
+
+This change fixes the bug by calling tracehook_report_exec() only in the
+outermost search_binary_handler() call (bprm->recursion_depth == 0).
+
+The additional change to restore bprm->recursion_depth after each binfmt
+load_binary call is actually superfluous for this bug, since we test the
+value saved on entry to search_binary_handler().  But it keeps the use of
+of the depth count to its most obvious expected meaning.  Depending on what
+binfmt handlers do in certain cases, there could have been false-positive
+tests for recursion limits before this change.
+
+    /* Test program using PTRACE_O_TRACEEXEC.
+       This forks and exec's the first argument with the rest of the arguments,
+       while ptrace'ing.  It expects to see one PTRACE_EVENT_EXEC stop and
+       then a successful exit, with no other signals or events in between.
+
+       Test for kernel doing two PTRACE_EVENT_EXEC stops for a binfmt_misc exec:
+
+       $ gcc -g traceexec.c -o traceexec
+       $ sudo sh -c 'echo :test:M::foobar::/bin/cat: > /proc/sys/fs/binfmt_misc/register'
+       $ echo 'foobar test' > ./foobar
+       $ chmod +x ./foobar
+       $ ./traceexec ./foobar; echo $?
+       ==> good <==
+       foobar test
+       0
+       $
+       ==> bad <==
+       foobar test
+       unexpected status 0x4057f != 0
+       3
+       $
+
+    */
+
+    #include <stdio.h>
+    #include <sys/types.h>
+    #include <sys/wait.h>
+    #include <sys/ptrace.h>
+    #include <unistd.h>
+    #include <signal.h>
+    #include <stdlib.h>
+
+    static void
+    wait_for (pid_t child, int expect)
+    {
+      int status;
+      pid_t p = wait (&status);
+      if (p != child)
+       {
+         perror ("wait");
+         exit (2);
+       }
+      if (status != expect)
+       {
+         fprintf (stderr, "unexpected status %#x != %#x\n", status, expect);
+         exit (3);
+       }
+    }
+
+    int
+    main (int argc, char **argv)
+    {
+      pid_t child = fork ();
+
+      if (child < 0)
+       {
+         perror ("fork");
+         return 127;
+       }
+      else if (child == 0)
+       {
+         ptrace (PTRACE_TRACEME);
+         raise (SIGUSR1);
+         execv (argv[1], &argv[1]);
+         perror ("execve");
+         _exit (127);
+       }
+
+      wait_for (child, W_STOPCODE (SIGUSR1));
+
+      if (ptrace (PTRACE_SETOPTIONS, child,
+                 0L, (void *) (long) PTRACE_O_TRACEEXEC) != 0)
+       {
+         perror ("PTRACE_SETOPTIONS");
+         return 4;
+       }
+
+      if (ptrace (PTRACE_CONT, child, 0L, 0L) != 0)
+       {
+         perror ("PTRACE_CONT");
+         return 5;
+       }
+
+      wait_for (child, W_STOPCODE (SIGTRAP | (PTRACE_EVENT_EXEC << 8)));
+
+      if (ptrace (PTRACE_CONT, child, 0L, 0L) != 0)
+       {
+         perror ("PTRACE_CONT");
+         return 6;
+       }
+
+      wait_for (child, W_EXITCODE (0, 0));
+
+      return 0;
+    }
+
+Reported-by: Arnd Bergmann <arnd@arndb.de>
+CC: Ulrich Weigand <ulrich.weigand@de.ibm.com>
+Signed-off-by: Roland McGrath <roland@redhat.com>
+Acked-by: Arnd Bergmann <arnd@arndb.de>
+Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
+
+---
+ fs/exec.c |   10 +++++++++-
+ 1 file changed, 9 insertions(+), 1 deletion(-)
+
+--- a/fs/exec.c
++++ b/fs/exec.c
+@@ -1164,6 +1164,7 @@ EXPORT_SYMBOL(remove_arg_zero);
+  */
+ int search_binary_handler(struct linux_binprm *bprm,struct pt_regs *regs)
+ {
++      unsigned int depth = bprm->recursion_depth;
+       int try,retval;
+       struct linux_binfmt *fmt;
+ #ifdef __alpha__
+@@ -1224,8 +1225,15 @@ int search_binary_handler(struct linux_b
+                               continue;
+                       read_unlock(&binfmt_lock);
+                       retval = fn(bprm, regs);
++                      /*
++                       * Restore the depth counter to its starting value
++                       * in this call, so we don't have to rely on every
++                       * load_binary function to restore it on return.
++                       */
++                      bprm->recursion_depth = depth;
+                       if (retval >= 0) {
+-                              tracehook_report_exec(fmt, bprm, regs);
++                              if (depth == 0)
++                                      tracehook_report_exec(fmt, bprm, regs);
+                               put_binfmt(fmt);
+                               allow_write_access(bprm->file);
+                               if (bprm->file)
+
+
+From gregkh@mini.kroah.org Thu Dec 11 11:04:49 2008
+Message-Id: <20081211190449.394947274@mini.kroah.org>
+User-Agent: quilt/0.47-1
+Date: Thu, 11 Dec 2008 11:03:21 -0800
+From: Greg KH <gregkh@suse.de>
+To: linux-kernel@vger.kernel.org,
+ stable@kernel.org
+Cc: Justin Forbes <jmforbes@linuxtx.org>,
+ Zwane Mwaikambo <zwane@arm.linux.org.uk>,
+ Theodore Ts'o <tytso@mit.edu>,
+ Randy Dunlap <rdunlap@xenotime.net>,
+ Dave Jones <davej@redhat.com>,
+ Chuck Wolber <chuckw@quantumlinux.com>,
+ Chris Wedgwood <reviews@ml.cw.f00f.org>,
+ Michael Krufky <mkrufky@linuxtv.org>,
+ Chuck Ebbert <cebbert@redhat.com>,
+ Domenico Andreoli <cavokz@gmail.com>,
+ Willy Tarreau <w@1wt.eu>,
+ Rodrigo Rubira Branco <rbranco@la.checkpoint.com>,
+ Jake Edge <jake@lwn.net>,
+ Eugene Teo <eteo@redhat.com>,
+ torvalds@linux-foundation.org,
+ akpm@linux-foundation.org,
+ alan@lxorguk.ukuu.org.uk,
+ Grant Likely <grant.likely@secretlab.ca>,
+ Josh Boyer <jwboyer@linux.vnet.ibm.com>
+Subject: [patch 80/83] powerpc/virtex5: Fix Virtex5 machine check handling
+References: <20081211190201.612240183@mini.kroah.org>
+Content-Disposition: inline; filename=powerpc-virtex5-fix-virtex5-machine-check-handling.patch
+Content-Length: 2068
+Lines: 51
+
+2.6.27-stable review patch.  If anyone has any objections, please let us know.
+
+------------------
+
+From: Grant Likely <grant.likely@secretlab.ca>
+
+commit 640d17d60e83401e10e66a0ab6e9e2d6350df656 upstream.
+
+The 440x5 core in the Virtex5 uses the 440A type machine check
+(ie, they have MCSRR0/MCSRR1). They thus need to call the
+appropriate fixup function to hook the right variant of the
+exception.
+
+Without this, all machine checks become fatal due to loss
+of context when entering the exception handler.
+
+Signed-off-by: Grant Likely <grant.likely@secretlab.ca>
+Signed-off-by: Josh Boyer <jwboyer@linux.vnet.ibm.com>
+Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
+
+---
+ arch/powerpc/kernel/cpu_setup_44x.S |    1 +
+ arch/powerpc/kernel/cputable.c      |    3 +++
+ 2 files changed, 4 insertions(+)
+
+--- a/arch/powerpc/kernel/cpu_setup_44x.S
++++ b/arch/powerpc/kernel/cpu_setup_44x.S
+@@ -35,6 +35,7 @@ _GLOBAL(__setup_cpu_440grx)
+ _GLOBAL(__setup_cpu_460ex)
+ _GLOBAL(__setup_cpu_460gt)
+       b       __init_fpu_44x
++_GLOBAL(__setup_cpu_440x5)
+ _GLOBAL(__setup_cpu_440gx)
+ _GLOBAL(__setup_cpu_440spe)
+       b       __fixup_440A_mcheck
+--- a/arch/powerpc/kernel/cputable.c
++++ b/arch/powerpc/kernel/cputable.c
+@@ -39,6 +39,7 @@ extern void __setup_cpu_440epx(unsigned 
+ extern void __setup_cpu_440gx(unsigned long offset, struct cpu_spec* spec);
+ extern void __setup_cpu_440grx(unsigned long offset, struct cpu_spec* spec);
+ extern void __setup_cpu_440spe(unsigned long offset, struct cpu_spec* spec);
++extern void __setup_cpu_440x5(unsigned long offset, struct cpu_spec* spec);
+ extern void __setup_cpu_460ex(unsigned long offset, struct cpu_spec* spec);
+ extern void __setup_cpu_460gt(unsigned long offset, struct cpu_spec* spec);
+ extern void __setup_cpu_603(unsigned long offset, struct cpu_spec* spec);
+@@ -1463,6 +1464,8 @@ static struct cpu_spec __initdata cpu_sp
+               .cpu_user_features      = COMMON_USER_BOOKE,
+               .icache_bsize           = 32,
+               .dcache_bsize           = 32,
++              .cpu_setup              = __setup_cpu_440x5,
++              .machine_check          = machine_check_440A,
+               .platform               = "ppc440",
+       },
+       { /* 460EX */
+
+
+From gregkh@mini.kroah.org Thu Dec 11 11:04:49 2008
+Message-Id: <20081211190449.586849527@mini.kroah.org>
+User-Agent: quilt/0.47-1
+Date: Thu, 11 Dec 2008 11:03:22 -0800
+From: Greg KH <gregkh@suse.de>
+To: linux-kernel@vger.kernel.org,
+ stable@kernel.org
+Cc: Justin Forbes <jmforbes@linuxtx.org>,
+ Zwane Mwaikambo <zwane@arm.linux.org.uk>,
+ Theodore Ts'o <tytso@mit.edu>,
+ Randy Dunlap <rdunlap@xenotime.net>,
+ Dave Jones <davej@redhat.com>,
+ Chuck Wolber <chuckw@quantumlinux.com>,
+ Chris Wedgwood <reviews@ml.cw.f00f.org>,
+ Michael Krufky <mkrufky@linuxtv.org>,
+ Chuck Ebbert <cebbert@redhat.com>,
+ Domenico Andreoli <cavokz@gmail.com>,
+ Willy Tarreau <w@1wt.eu>,
+ Rodrigo Rubira Branco <rbranco@la.checkpoint.com>,
+ Jake Edge <jake@lwn.net>,
+ Eugene Teo <eteo@redhat.com>,
+ torvalds@linux-foundation.org,
+ akpm@linux-foundation.org,
+ alan@lxorguk.ukuu.org.uk,
+ Len Brown <len.brown@intel.com>
+Subject: [patch 81/83] ACPI: delete OSI(Linux) DMI dmesg spam
+References: <20081211190201.612240183@mini.kroah.org>
+Content-Disposition: inline; filename=acpi-delete-osi-dmi-dmesg-spam.patch
+Content-Length: 2091
+Lines: 66
+
+2.6.27-stable review patch.  If anyone has any objections, please let us know.
+
+------------------
+
+From: Len Brown <lenb@kernel.org>
+
+With the 2.6.28 commit a6e0887f21bbab337ee32d9c0a84d7c0b6e9141b, we now
+have fixed up the ACPI DMI code, so stop asking for people to report the
+issues to the acpi developers, it is no longer needed at all.
+
+Signed-off-by: Len Brown <len.brown@intel.com>
+Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
+
+---
+ drivers/acpi/osl.c |   36 ------------------------------------
+ 1 file changed, 36 deletions(-)
+
+--- a/drivers/acpi/osl.c
++++ b/drivers/acpi/osl.c
+@@ -1261,34 +1261,6 @@ acpi_status acpi_os_release_object(acpi_
+       return (AE_OK);
+ }
+-/**
+- *    acpi_dmi_dump - dump DMI slots needed for blacklist entry
+- *
+- *    Returns 0 on success
+- */
+-static int acpi_dmi_dump(void)
+-{
+-
+-      if (!dmi_available)
+-              return -1;
+-
+-      printk(KERN_NOTICE PREFIX "DMI System Vendor: %s\n",
+-              dmi_get_system_info(DMI_SYS_VENDOR));
+-      printk(KERN_NOTICE PREFIX "DMI Product Name: %s\n",
+-              dmi_get_system_info(DMI_PRODUCT_NAME));
+-      printk(KERN_NOTICE PREFIX "DMI Product Version: %s\n",
+-              dmi_get_system_info(DMI_PRODUCT_VERSION));
+-      printk(KERN_NOTICE PREFIX "DMI Board Name: %s\n",
+-              dmi_get_system_info(DMI_BOARD_NAME));
+-      printk(KERN_NOTICE PREFIX "DMI BIOS Vendor: %s\n",
+-              dmi_get_system_info(DMI_BIOS_VENDOR));
+-      printk(KERN_NOTICE PREFIX "DMI BIOS Date: %s\n",
+-              dmi_get_system_info(DMI_BIOS_DATE));
+-
+-      return 0;
+-}
+-
+-
+ /******************************************************************************
+  *
+  * FUNCTION:    acpi_os_validate_interface
+@@ -1315,14 +1287,6 @@ acpi_os_validate_interface (char *interf
+                       osi_linux.cmdline ? " via cmdline" :
+                       osi_linux.dmi ? " via DMI" : "");
+-              if (!osi_linux.dmi) {
+-                      if (acpi_dmi_dump())
+-                              printk(KERN_NOTICE PREFIX
+-                                      "[please extract dmidecode output]\n");
+-                      printk(KERN_NOTICE PREFIX
+-                              "Please send DMI info above to "
+-                              "linux-acpi@vger.kernel.org\n");
+-              }
+               if (!osi_linux.known && !osi_linux.cmdline) {
+                       printk(KERN_NOTICE PREFIX
+                               "If \"acpi_osi=%sLinux\" works better, "
+
+
+From gregkh@mini.kroah.org Thu Dec 11 11:04:49 2008
+Message-Id: <20081211190449.764592438@mini.kroah.org>
+User-Agent: quilt/0.47-1
+Date: Thu, 11 Dec 2008 11:03:23 -0800
+From: Greg KH <gregkh@suse.de>
+To: linux-kernel@vger.kernel.org,
+ stable@kernel.org,
+ greg@kroah.com
+Cc: Justin Forbes <jmforbes@linuxtx.org>,
+ Zwane Mwaikambo <zwane@arm.linux.org.uk>,
+ Theodore Ts'o <tytso@mit.edu>,
+ Randy Dunlap <rdunlap@xenotime.net>,
+ Dave Jones <davej@redhat.com>,
+ Chuck Wolber <chuckw@quantumlinux.com>,
+ Chris Wedgwood <reviews@ml.cw.f00f.org>,
+ Michael Krufky <mkrufky@linuxtv.org>,
+ Chuck Ebbert <cebbert@redhat.com>,
+ Domenico Andreoli <cavokz@gmail.com>,
+ Willy Tarreau <w@1wt.eu>,
+ Rodrigo Rubira Branco <rbranco@la.checkpoint.com>,
+ Jake Edge <jake@lwn.net>,
+ Eugene Teo <eteo@redhat.com>,
+ torvalds@linux-foundation.org,
+ akpm@linux-foundation.org,
+ alan@lxorguk.ukuu.org.uk,
+ smfrench@gmail.com,
+ shirishp@us.ibm.com,
+ sjayaraman@suse.de,
+ Jeff Layton <jlayton@redhat.com>
+Subject: [patch 82/83] cifs: fix a regression in cifs umount codepath
+References: <20081211190201.612240183@mini.kroah.org>
+Content-Disposition: inline; filename=cifs-fix-a-regression-in-cifs-umount-codepath.patch
+Content-Length: 4934
+Lines: 144
+
+2.6.27-stable review patch.  If anyone has any objections, please let us know.
+
+------------------
+
+From: Jeff Layton <jlayton@redhat.com>
+
+backport of 469ee614aaa367d9cde01cbdd2027212f56c6cc6 upstream.
+
+Several cifs patches were added to 2.6.27.8 to fix some races in the
+mount/umount codepath. When this was done, a couple of prerequisite
+patches were missed causing a minor regression.
+
+When the last cifs mount to a server goes away, the kthread that manages
+the socket is supposed to come down. The patches that went into 2.6.27.8
+removed the kthread_stop calls that used to take down these threads, but
+left the thread function expecting them. This made the thread stay up
+even after the last mount was gone.
+
+This patch should fix up this regression and also prevent a possible
+race where a dead task could be signalled.
+
+Signed-off-by: Jeff Layton <jlayton@redhat.com>
+Cc: Suresh Jayaraman <sjayaraman@suse.de>
+Acked-by: Steve French <smfrench@gmail.com>
+Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
+
+---
+ fs/cifs/connect.c |   36 +++++++++++++++++++++---------------
+ 1 file changed, 21 insertions(+), 15 deletions(-)
+
+--- a/fs/cifs/connect.c
++++ b/fs/cifs/connect.c
+@@ -128,7 +128,7 @@ cifs_reconnect(struct TCP_Server_Info *s
+       struct mid_q_entry *mid_entry;
+       spin_lock(&GlobalMid_Lock);
+-      if (kthread_should_stop()) {
++      if (server->tcpStatus == CifsExiting) {
+               /* the demux thread will exit normally
+               next time through the loop */
+               spin_unlock(&GlobalMid_Lock);
+@@ -182,7 +182,8 @@ cifs_reconnect(struct TCP_Server_Info *s
+       spin_unlock(&GlobalMid_Lock);
+       up(&server->tcpSem);
+-      while ((!kthread_should_stop()) && (server->tcpStatus != CifsGood)) {
++      while ((server->tcpStatus != CifsExiting) &&
++             (server->tcpStatus != CifsGood)) {
+               try_to_freeze();
+               if (server->addr.sockAddr6.sin6_family == AF_INET6) {
+                       rc = ipv6_connect(&server->addr.sockAddr6,
+@@ -200,7 +201,7 @@ cifs_reconnect(struct TCP_Server_Info *s
+               } else {
+                       atomic_inc(&tcpSesReconnectCount);
+                       spin_lock(&GlobalMid_Lock);
+-                      if (!kthread_should_stop())
++                      if (server->tcpStatus != CifsExiting)
+                               server->tcpStatus = CifsGood;
+                       server->sequence_number = 0;
+                       spin_unlock(&GlobalMid_Lock);
+@@ -355,7 +356,7 @@ cifs_demultiplex_thread(struct TCP_Serve
+                               GFP_KERNEL);
+       set_freezable();
+-      while (!kthread_should_stop()) {
++      while (server->tcpStatus != CifsExiting) {
+               if (try_to_freeze())
+                       continue;
+               if (bigbuf == NULL) {
+@@ -396,7 +397,7 @@ incomplete_rcv:
+                   kernel_recvmsg(csocket, &smb_msg,
+                               &iov, 1, pdu_length, 0 /* BB other flags? */);
+-              if (kthread_should_stop()) {
++              if (server->tcpStatus == CifsExiting) {
+                       break;
+               } else if (server->tcpStatus == CifsNeedReconnect) {
+                       cFYI(1, ("Reconnect after server stopped responding"));
+@@ -527,7 +528,7 @@ incomplete_rcv:
+                    total_read += length) {
+                       length = kernel_recvmsg(csocket, &smb_msg, &iov, 1,
+                                               pdu_length - total_read, 0);
+-                      if (kthread_should_stop() ||
++                      if ((server->tcpStatus == CifsExiting) ||
+                           (length == -EINTR)) {
+                               /* then will exit */
+                               reconnect = 2;
+@@ -661,14 +662,6 @@ multi_t2_fnd:
+       spin_unlock(&GlobalMid_Lock);
+       wake_up_all(&server->response_q);
+-      /* don't exit until kthread_stop is called */
+-      set_current_state(TASK_UNINTERRUPTIBLE);
+-      while (!kthread_should_stop()) {
+-              schedule();
+-              set_current_state(TASK_UNINTERRUPTIBLE);
+-      }
+-      set_current_state(TASK_RUNNING);
+-
+       /* check if we have blocked requests that need to free */
+       /* Note that cifs_max_pending is normally 50, but
+       can be set at module install time to as little as two */
+@@ -764,6 +757,7 @@ multi_t2_fnd:
+       read_unlock(&cifs_tcp_ses_lock);
+       kfree(server->hostname);
++      task_to_wake = xchg(&server->tsk, NULL);
+       kfree(server);
+       length = atomic_dec_return(&tcpSesAllocCount);
+@@ -771,6 +765,16 @@ multi_t2_fnd:
+               mempool_resize(cifs_req_poolp, length + cifs_min_rcv,
+                               GFP_KERNEL);
++      /* if server->tsk was NULL then wait for a signal before exiting */
++      if (!task_to_wake) {
++              set_current_state(TASK_INTERRUPTIBLE);
++              while (!signal_pending(current)) {
++                      schedule();
++                      set_current_state(TASK_INTERRUPTIBLE);
++              }
++              set_current_state(TASK_RUNNING);
++      }
++
+       return 0;
+ }
+@@ -2310,7 +2314,7 @@ cifs_mount(struct super_block *sb, struc
+       /* on error free sesinfo and tcon struct if needed */
+ mount_fail_check:
+       if (rc) {
+-               /* If find_unc succeeded then rc == 0 so we can not end */
++              /* If find_unc succeeded then rc == 0 so we can not end */
+               /* up accidently freeing someone elses tcon struct */
+               if (tcon)
+                       cifs_put_tcon(tcon);
+@@ -3715,8 +3719,10 @@ int cifs_setup_session(unsigned int xid,
+               cERROR(1, ("Send error in SessSetup = %d", rc));
+       } else {
+               cFYI(1, ("CIFS Session Established successfully"));
++                      spin_lock(&GlobalMid_Lock);
+                       pSesInfo->status = CifsGood;
+                       pSesInfo->need_reconnect = false;
++                      spin_unlock(&GlobalMid_Lock);
+       }
+ ss_err_exit:
+
+
+From gregkh@mini.kroah.org Thu Dec 11 11:04:50 2008
+Message-Id: <20081211190449.947637629@mini.kroah.org>
+User-Agent: quilt/0.47-1
+Date: Thu, 11 Dec 2008 11:03:24 -0800
+From: Greg KH <gregkh@suse.de>
+To: linux-kernel@vger.kernel.org,
+ stable@kernel.org
+Cc: Justin Forbes <jmforbes@linuxtx.org>,
+ Zwane Mwaikambo <zwane@arm.linux.org.uk>,
+ Theodore Ts'o <tytso@mit.edu>,
+ Randy Dunlap <rdunlap@xenotime.net>,
+ Dave Jones <davej@redhat.com>,
+ Chuck Wolber <chuckw@quantumlinux.com>,
+ Chris Wedgwood <reviews@ml.cw.f00f.org>,
+ Michael Krufky <mkrufky@linuxtv.org>,
+ Chuck Ebbert <cebbert@redhat.com>,
+ Domenico Andreoli <cavokz@gmail.com>,
+ Willy Tarreau <w@1wt.eu>,
+ Rodrigo Rubira Branco <rbranco@la.checkpoint.com>,
+ Jake Edge <jake@lwn.net>,
+ Eugene Teo <eteo@redhat.com>,
+ torvalds@linux-foundation.org,
+ akpm@linux-foundation.org,
+ alan@lxorguk.ukuu.org.uk,
+ Rene Herman <rene.herman@gmail.com>,
+ "H. Peter Anvin" <hpa@zytor.com>,
+ Bjorn Helgaas <bjorn.helgaas@hp.com>,
+ Andi Kleen <andi@firstfloor.org>,
+ "Rafael J. Wysocki" <rjw@sisk.pl>
+Subject: [patch 83/83] pnp: make the resource type an unsigned long
+References: <20081211190201.612240183@mini.kroah.org>
+Content-Disposition: inline; filename=pnp-make-the-resource-type-an-unsigned-long.patch
+Content-Length: 2712
+Lines: 81
+
+2.6.27-stable review patch.  If anyone has any objections, please let us know.
+
+------------------
+
+From: Rene Herman <rene.herman@keyaccess.nl>
+
+commit b563cf59c4d67da7d671788a9848416bfa4180ab upstream.
+
+PnP encodes the resource type directly as its struct resource->flags value
+which is an unsigned long.  Make it so...
+
+Signed-off-by: Rene Herman <rene.herman@gmail.com>
+Cc: "H. Peter Anvin" <hpa@zytor.com>
+Acked-by: Bjorn Helgaas <bjorn.helgaas@hp.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>
+Cc: Rafael J. Wysocki <rjw@sisk.pl>
+Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
+
+---
+ drivers/pnp/base.h     |    2 +-
+ drivers/pnp/quirks.c   |    2 +-
+ drivers/pnp/resource.c |    4 ++--
+ include/linux/pnp.h    |    6 ++++--
+ 4 files changed, 8 insertions(+), 6 deletions(-)
+
+--- a/drivers/pnp/base.h
++++ b/drivers/pnp/base.h
+@@ -147,7 +147,7 @@ char *pnp_resource_type_name(struct reso
+ void dbg_pnp_show_resources(struct pnp_dev *dev, char *desc);
+ void pnp_free_resources(struct pnp_dev *dev);
+-int pnp_resource_type(struct resource *res);
++unsigned long pnp_resource_type(struct resource *res);
+ struct pnp_resource {
+       struct list_head list;
+--- a/drivers/pnp/quirks.c
++++ b/drivers/pnp/quirks.c
+@@ -245,7 +245,7 @@ static void quirk_system_pci_resources(s
+        */
+       for_each_pci_dev(pdev) {
+               for (i = 0; i < DEVICE_COUNT_RESOURCE; i++) {
+-                      unsigned int type;
++                      unsigned long type;
+                       type = pci_resource_flags(pdev, i) &
+                                       (IORESOURCE_IO | IORESOURCE_MEM);
+--- a/drivers/pnp/resource.c
++++ b/drivers/pnp/resource.c
+@@ -467,14 +467,14 @@ int pnp_check_dma(struct pnp_dev *dev, s
+ #endif
+ }
+-int pnp_resource_type(struct resource *res)
++unsigned long pnp_resource_type(struct resource *res)
+ {
+       return res->flags & (IORESOURCE_IO  | IORESOURCE_MEM |
+                            IORESOURCE_IRQ | IORESOURCE_DMA);
+ }
+ struct resource *pnp_get_resource(struct pnp_dev *dev,
+-                                unsigned int type, unsigned int num)
++                                unsigned long type, unsigned int num)
+ {
+       struct pnp_resource *pnp_res;
+       struct resource *res;
+--- a/include/linux/pnp.h
++++ b/include/linux/pnp.h
+@@ -22,9 +22,11 @@ struct pnp_dev;
+  * Resource Management
+  */
+ #ifdef CONFIG_PNP
+-struct resource *pnp_get_resource(struct pnp_dev *, unsigned int, unsigned int);
++struct resource *pnp_get_resource(struct pnp_dev *dev, unsigned long type,
++                              unsigned int num);
+ #else
+-static inline struct resource *pnp_get_resource(struct pnp_dev *dev, unsigned int type, unsigned int num)
++static inline struct resource *pnp_get_resource(struct pnp_dev *dev,
++                      unsigned long type, unsigned int num)
+ {
+       return NULL;
+ }
+
+
+From gregkh@mini.kroah.org Thu Dec 11 11:04:33 2008
+Message-Id: <20081211190201.612240183@mini.kroah.org>
+User-Agent: quilt/0.47-1
+Date: Thu, 11 Dec 2008 11:02:01 -0800
+From: Greg KH <gregkh@suse.de>
+To: linux-kernel@vger.kernel.org,
+ stable@kernel.org
+Cc: Justin Forbes <jmforbes@linuxtx.org>,
+ Zwane Mwaikambo <zwane@arm.linux.org.uk>,
+ Theodore Ts'o <tytso@mit.edu>,
+ Randy Dunlap <rdunlap@xenotime.net>,
+ Dave Jones <davej@redhat.com>,
+ Chuck Wolber <chuckw@quantumlinux.com>,
+ Chris Wedgwood <reviews@ml.cw.f00f.org>,
+ Michael Krufky <mkrufky@linuxtv.org>,
+ Chuck Ebbert <cebbert@redhat.com>,
+ Domenico Andreoli <cavokz@gmail.com>,
+ Willy Tarreau <w@1wt.eu>,
+ Rodrigo Rubira Branco <rbranco@la.checkpoint.com>,
+ Jake Edge <jake@lwn.net>,
+ Eugene Teo <eteo@redhat.com>,
+ torvalds@linux-foundation.org,
+ akpm@linux-foundation.org,
+ alan@lxorguk.ukuu.org.uk
+Subject: [patch 00/83] 2.6.27.9-stable review
+Status: RO
+Content-Length: 3963
+Lines: 86
+
+This is the start of the stable review cycle for the 2.6.27.9 release.
+There are 83 patches in this series, all will be posted as a response to
+this one.  If anyone has any issues with these being applied, please let
+us know.  If anyone is a maintainer of the proper subsystem, and wants
+to add a Signed-off-by: line to the patch, please respond with it.
+
+These patches are sent out with a number of different people on the Cc:
+line.  If you wish to be a reviewer, please email stable@kernel.org to
+add your name to the list.  If you want to be off the reviewer list,
+also email us.
+
+Responses should be made by December 13, 2008, 20:00:00 UTC.
+Anything received after that time might be too late.
+
+The whole patch series can be found in one patch at:
+       kernel.org/pub/linux/kernel/v2.6/stable-review/patch-2.6.27.9-rc1.gz
+and the diffstat can be found below.
+
+
+thanks,
+
+greg k-h
+
+-----------------
+
+ Makefile                              |    2 +-
+ arch/powerpc/kernel/cpu_setup_44x.S   |    1 +
+ arch/powerpc/kernel/cputable.c        |    3 +
+ arch/powerpc/sysdev/mpic.c            |    9 +-
+ arch/sparc/include/asm/uaccess_64.h   |    4 +-
+ arch/sparc64/kernel/pci.c             |   10 +-
+ arch/sparc64/kernel/ptrace.c          |    2 +-
+ arch/sparc64/kernel/visemul.c         |    6 +-
+ arch/sparc64/lib/user_fixup.c         |    2 +-
+ arch/um/drivers/mconsole_kern.c       |    4 +-
+ arch/x86/kernel/hpet.c                |    2 +-
+ arch/x86/mm/init_64.c                 |    4 +-
+ block/bsg.c                           |    2 +
+ block/scsi_ioctl.c                    |    2 +
+ drivers/acpi/osl.c                    |   36 ----
+ drivers/acpi/sleep/main.c             |   40 ++++-
+ drivers/ata/libata-sff.c              |   13 +-
+ drivers/edac/cell_edac.c              |    3 +
+ drivers/hid/usbhid/hid-quirks.c       |    2 +
+ drivers/input/serio/i8042-x86ia64io.h |   29 +++
+ drivers/net/cxgb3/adapter.h           |    1 +
+ drivers/net/cxgb3/cxgb3_main.c        |    5 +
+ drivers/net/cxgb3/l2t.c               |    1 +
+ drivers/net/cxgb3/sge.c               |   56 ++----
+ drivers/net/niu.c                     |    3 +-
+ drivers/net/pppol2tp.c                |    1 +
+ drivers/pci/pcie/aspm.c               |   29 +++-
+ drivers/pci/slot.c                    |    1 +
+ drivers/pnp/base.h                    |    2 +-
+ drivers/pnp/quirks.c                  |    2 +-
+ drivers/pnp/resource.c                |    4 +-
+ drivers/spi/spidev.c                  |    4 +-
+ drivers/usb/serial/option.c           |  176 +++++++++++++++---
+ drivers/usb/storage/unusual_devs.h    |  334 ++++++++++++++++++++++++++++++--
+ fs/binfmt_em86.c                      |    2 +-
+ fs/binfmt_misc.c                      |    4 +-
+ fs/binfmt_script.c                    |    5 +-
+ fs/cifs/connect.c                     |   36 ++--
+ fs/exec.c                             |   10 +-
+ fs/fcntl.c                            |    7 +
+ fs/ioctl.c                            |   12 +-
+ fs/jbd/checkpoint.c                   |   49 ++++--
+ fs/jbd/journal.c                      |   28 +++-
+ fs/jbd/recovery.c                     |    7 +-
+ fs/proc/task_mmu.c                    |    4 +-
+ include/linux/binfmts.h               |    2 +
+ include/linux/blkdev.h                |    1 +
+ include/linux/jbd.h                   |    2 +-
+ include/linux/pnp.h                   |    6 +-
+ kernel/fork.c                         |   15 +-
+ kernel/sched.c                        |    8 +-
+ net/atm/svc.c                         |    6 +-
+ net/ipv4/udp.c                        |   12 +-
+ net/ipv6/udp.c                        |    8 +-
+ net/unix/af_unix.c                    |    2 +-
+ sound/pci/emu10k1/emu10k1_main.c      |    3 +
+ sound/pci/hda/hda_proc.c              |    2 +-
+ sound/pci/hda/patch_analog.c          |   10 +-
+ sound/pci/hda/patch_realtek.c         |  152 +++++++++++++++-
+ sound/pci/hda/patch_sigmatel.c        |   45 ++++-
+ 60 files changed, 1012 insertions(+), 221 deletions(-)
+
similarity index 100%
rename from queue-2.6.27/series
rename to review-2.6.27/series