--- /dev/null
+From 19b3f31609dc8be3a56c78dcb7da723f10f7009c Mon Sep 17 00:00:00 2001
+From: Stanley Miao <stanley.miao@windriver.com>
+Date: Fri, 19 Dec 2008 22:08:22 +0800
+Subject: ALSA: Fix a Oops bug in omap soc driver.
+
+From: Stanley Miao <stanley.miao@windriver.com>
+
+commit 19b3f31609dc8be3a56c78dcb7da723f10f7009c upstream.
+
+There will be a Oops or frequent underrun messages when playing music with
+omap soc driver, this is because a data region is incorretly sized, other data
+region will be overwriten when writing to this data region.
+
+Signed-off-by: Stanley Miao <stanley.miao@windriver.com>
+Acked-by: Jarkko Nikula <jarkko.nikula@nokia.com>
+Signed-off-by: Takashi Iwai <tiwai@suse.de>
+Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
+
+---
+ sound/soc/omap/omap-pcm.c | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+--- a/sound/soc/omap/omap-pcm.c
++++ b/sound/soc/omap/omap-pcm.c
+@@ -231,7 +231,7 @@ static int omap_pcm_open(struct snd_pcm_
+ if (ret < 0)
+ goto out;
+
+- prtd = kzalloc(sizeof(prtd), GFP_KERNEL);
++ prtd = kzalloc(sizeof(*prtd), GFP_KERNEL);
+ if (prtd == NULL) {
+ ret = -ENOMEM;
+ goto out;
--- /dev/null
+From 574f3c4f5c55e99ea60f71fd98cc54931d4b2eae Mon Sep 17 00:00:00 2001
+From: Herton Ronaldo Krzesinski <herton@mandriva.com.br>
+Date: Tue, 23 Dec 2008 16:53:00 -0200
+Subject: ALSA: hda - Add missing terminators in patch_sigmatel.c
+
+From: Herton Ronaldo Krzesinski <herton@mandriva.com.br>
+
+commit 574f3c4f5c55e99ea60f71fd98cc54931d4b2eae upstream.
+
+Signed-off-by: Herton Ronaldo Krzesinski <herton@mandriva.com.br>
+Signed-off-by: Takashi Iwai <tiwai@suse.de>
+Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
+
+---
+ sound/pci/hda/patch_sigmatel.c | 1 +
+ 1 file changed, 1 insertion(+)
+
+--- a/sound/pci/hda/patch_sigmatel.c
++++ b/sound/pci/hda/patch_sigmatel.c
+@@ -638,6 +638,7 @@ static struct hda_verb stac92hd71bxx_cor
+ { 0x0a, AC_VERB_SET_AMP_GAIN_MUTE, AMP_IN_UNMUTE(0)},
+ { 0x0d, AC_VERB_SET_AMP_GAIN_MUTE, AMP_IN_UNMUTE(0)},
+ { 0x0f, AC_VERB_SET_AMP_GAIN_MUTE, AMP_IN_UNMUTE(0)},
++ {}
+ };
+
+ #define HD_DISABLE_PORTF 3
--- /dev/null
+From d8a0be6ab7ba1ffa43e7ea0dcdde3e8b68d4f762 Mon Sep 17 00:00:00 2001
+From: Stephen M. Cameron <scameron@beardog.cca.cpqcorp.net>
+Date: Thu, 18 Dec 2008 14:55:11 +0100
+Subject: cciss: fix problem that deleting multiple logical drives could cause a panic
+
+From: Stephen M. Cameron <scameron@beardog.cca.cpqcorp.net>
+
+commit d8a0be6ab7ba1ffa43e7ea0dcdde3e8b68d4f762 upstream.
+
+Fix problem that deleting multiple logical drives could cause a panic.
+
+It fixes a panic which can be easily reproduced in the following way: Just
+create several "arrays," each with multiple logical drives via hpacucli,
+then delete the first array, and it will blow up in deregister_disk(), in
+the call to get_host() when it tries to dig the hba pointer out of a NULL
+queue pointer.
+
+The problem has been present since my code to make rebuild_lun_table
+behave better went in.
+
+Signed-off-by: Stephen M. Cameron <scameron@beardog.cca.cpqcorp.net>
+Signed-off-by: Jens Axboe <jens.axboe@oracle.com>
+Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
+
+---
+ drivers/block/cciss.c | 5 +++++
+ 1 file changed, 5 insertions(+)
+
+--- a/drivers/block/cciss.c
++++ b/drivers/block/cciss.c
+@@ -1692,6 +1692,11 @@ static int rebuild_lun_table(ctlr_info_t
+ for (i = 0; i <= h->highest_lun; i++) {
+ int j;
+ drv_found = 0;
++
++ /* skip holes in the array from already deleted drives */
++ if (h->drv[i].raid_level == -1)
++ continue;
++
+ for (j = 0; j < num_luns; j++) {
+ memcpy(&lunid, &ld_buff->LUN[j][0], 4);
+ lunid = le32_to_cpu(lunid);
--- /dev/null
+From a2ed9615e3222645007fc19991aedf30eed3ecfd Mon Sep 17 00:00:00 2001
+From: NeilBrown <neilb@suse.de>
+Date: Fri, 19 Dec 2008 16:25:01 +1100
+Subject: md: Don't read past end of bitmap when reading bitmap.
+
+From: NeilBrown <neilb@suse.de>
+
+commit a2ed9615e3222645007fc19991aedf30eed3ecfd upstream.
+
+When we read the write-intent-bitmap off the device, we currently
+read a whole number of pages.
+When PAGE_SIZE is 4K, this works due to the alignment we enforce
+on the superblock and bitmap.
+When PAGE_SIZE is 64K, this case read past the end-of-device
+which causes an error.
+
+When we write the superblock, we ensure to clip the last page
+to just be the required size. Copy that code into the read path
+to just read the required number of sectors.
+
+Signed-off-by: Neil Brown <neilb@suse.de>
+Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
+
+---
+ drivers/md/bitmap.c | 22 +++++++++++++++++-----
+ 1 file changed, 17 insertions(+), 5 deletions(-)
+
+--- a/drivers/md/bitmap.c
++++ b/drivers/md/bitmap.c
+@@ -208,16 +208,19 @@ static void bitmap_checkfree(struct bitm
+ */
+
+ /* IO operations when bitmap is stored near all superblocks */
+-static struct page *read_sb_page(mddev_t *mddev, long offset, unsigned long index)
++static struct page *read_sb_page(mddev_t *mddev, long offset,
++ struct page *page,
++ unsigned long index, int size)
+ {
+ /* choose a good rdev and read the page from there */
+
+ mdk_rdev_t *rdev;
+ struct list_head *tmp;
+- struct page *page = alloc_page(GFP_KERNEL);
+ sector_t target;
+
+ if (!page)
++ page = alloc_page(GFP_KERNEL);
++ if (!page)
+ return ERR_PTR(-ENOMEM);
+
+ rdev_for_each(rdev, tmp, mddev) {
+@@ -227,7 +230,9 @@ static struct page *read_sb_page(mddev_t
+
+ target = rdev->sb_start + offset + index * (PAGE_SIZE/512);
+
+- if (sync_page_io(rdev->bdev, target, PAGE_SIZE, page, READ)) {
++ if (sync_page_io(rdev->bdev, target,
++ roundup(size, bdev_hardsect_size(rdev->bdev)),
++ page, READ)) {
+ page->index = index;
+ attach_page_buffers(page, NULL); /* so that free_buffer will
+ * quietly no-op */
+@@ -544,7 +549,9 @@ static int bitmap_read_sb(struct bitmap
+
+ bitmap->sb_page = read_page(bitmap->file, 0, bitmap, bytes);
+ } else {
+- bitmap->sb_page = read_sb_page(bitmap->mddev, bitmap->offset, 0);
++ bitmap->sb_page = read_sb_page(bitmap->mddev, bitmap->offset,
++ NULL,
++ 0, sizeof(bitmap_super_t));
+ }
+ if (IS_ERR(bitmap->sb_page)) {
+ err = PTR_ERR(bitmap->sb_page);
+@@ -957,11 +964,16 @@ static int bitmap_init_from_disk(struct
+ */
+ page = bitmap->sb_page;
+ offset = sizeof(bitmap_super_t);
++ read_sb_page(bitmap->mddev, bitmap->offset,
++ page,
++ index, count);
+ } else if (file) {
+ page = read_page(file, index, bitmap, count);
+ offset = 0;
+ } else {
+- page = read_sb_page(bitmap->mddev, bitmap->offset, index);
++ page = read_sb_page(bitmap->mddev, bitmap->offset,
++ NULL,
++ index, count);
+ offset = 0;
+ }
+ if (IS_ERR(page)) { /* read error */
--- /dev/null
+From b21227c5fcadab206e2a2373e5b288a351919abb Mon Sep 17 00:00:00 2001
+From: Hillier, Gernot <gernot.hillier@siemens.com>
+Date: Wed, 17 Sep 2008 16:03:06 +0200
+Subject: SCSI: aacraid: disable Dell Percraid quirk on Adaptec 2200S and 2120S
+
+From: Hillier, Gernot <gernot.hillier@siemens.com>
+
+commit b21227c5fcadab206e2a2373e5b288a351919abb upstream.
+
+A lot of 64bit machines with Adaptec 2200S and 2120S controllers don't
+recognize SCSI disks any more with the patch
+
+commit 94cf6ba11b068b8a8f68a1e88bffb6827e92124b
+Author: Salyzyn, Mark <mark_salyzyn@adaptec.com>
+Date: Thu Dec 13 16:14:18 2007 -0800
+
+ [SCSI] aacraid: fix driver failure with Dell PowerEdge Expandable RAID Controller 3/Di
+
+but fail with tons of "aac_srb: aac_fib_send failed with status: 8195"
+instead. This patch disables the quirk introduced in the change cited
+above for those two controllers again.
+
+[thenzl: added 2120S Controller]
+Signed-off-by: Gernot Hillier <gernot.hillier@siemens.com>
+Signed-off-by: Tomas Henzl <thenzl@redhat.com>
+Acked-by: Matt Domsch <Matt_Domsch@dell.com>
+Cc: AACRAID list <aacraid@adaptec.com>
+Signed-off-by: James Bottomley <James.Bottomley@HansenPartnership.com>
+Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
+
+---
+ drivers/scsi/aacraid/linit.c | 4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+--- a/drivers/scsi/aacraid/linit.c
++++ b/drivers/scsi/aacraid/linit.c
+@@ -175,8 +175,8 @@ static struct aac_driver_ident aac_drive
+ { aac_rx_init, "percraid", "DELL ", "PERCRAID ", 2, AAC_QUIRK_31BIT | AAC_QUIRK_34SG | AAC_QUIRK_SCSI_32 }, /* PERC 3/Di (Boxster/PERC3DiB) */
+ { aac_rx_init, "aacraid", "ADAPTEC ", "catapult ", 2, AAC_QUIRK_31BIT | AAC_QUIRK_34SG | AAC_QUIRK_SCSI_32 }, /* catapult */
+ { aac_rx_init, "aacraid", "ADAPTEC ", "tomcat ", 2, AAC_QUIRK_31BIT | AAC_QUIRK_34SG | AAC_QUIRK_SCSI_32 }, /* tomcat */
+- { aac_rx_init, "aacraid", "ADAPTEC ", "Adaptec 2120S ", 1, AAC_QUIRK_31BIT | AAC_QUIRK_34SG | AAC_QUIRK_SCSI_32 }, /* Adaptec 2120S (Crusader) */
+- { aac_rx_init, "aacraid", "ADAPTEC ", "Adaptec 2200S ", 2, AAC_QUIRK_31BIT | AAC_QUIRK_34SG | AAC_QUIRK_SCSI_32 }, /* Adaptec 2200S (Vulcan) */
++ { aac_rx_init, "aacraid", "ADAPTEC ", "Adaptec 2120S ", 1, AAC_QUIRK_31BIT | AAC_QUIRK_34SG }, /* Adaptec 2120S (Crusader) */
++ { aac_rx_init, "aacraid", "ADAPTEC ", "Adaptec 2200S ", 2, AAC_QUIRK_31BIT | AAC_QUIRK_34SG }, /* Adaptec 2200S (Vulcan) */
+ { aac_rx_init, "aacraid", "ADAPTEC ", "Adaptec 2200S ", 2, AAC_QUIRK_31BIT | AAC_QUIRK_34SG | AAC_QUIRK_SCSI_32 }, /* Adaptec 2200S (Vulcan-2m) */
+ { aac_rx_init, "aacraid", "Legend ", "Legend S220 ", 1, AAC_QUIRK_31BIT | AAC_QUIRK_34SG | AAC_QUIRK_SCSI_32 }, /* Legend S220 (Legend Crusader) */
+ { aac_rx_init, "aacraid", "Legend ", "Legend S230 ", 2, AAC_QUIRK_31BIT | AAC_QUIRK_34SG | AAC_QUIRK_SCSI_32 }, /* Legend S230 (Legend Vulcan) */
--- /dev/null
+From 57458036af75c6dbb62bee04b3982e92261eddb1 Mon Sep 17 00:00:00 2001
+From: Brian King <brking@linux.vnet.ibm.com>
+Date: Tue, 9 Dec 2008 20:03:50 +0900
+Subject: SCSI: ibmvstgt: move crq_queue_create to the end of initialization
+
+From: Brian King <brking@linux.vnet.ibm.com>
+
+commit 57458036af75c6dbb62bee04b3982e92261eddb1 upstream.
+
+Calling crq_queue_create could lead to the creation of a rport. We
+need to set up everything before creating a rport. This moves
+crq_queue_create to the end of initialization to avoid a race which
+causes an oops if lost.
+
+Signed-off-by: Brian King <brking@linux.vnet.ibm.com>
+Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
+Reported-by: Olaf Hering <olh@suse.de>
+Signed-off-by: James Bottomley <James.Bottomley@HansenPartnership.com>
+Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
+
+---
+ drivers/scsi/ibmvscsi/ibmvstgt.c | 16 +++++++++-------
+ 1 file changed, 9 insertions(+), 7 deletions(-)
+
+--- a/drivers/scsi/ibmvscsi/ibmvstgt.c
++++ b/drivers/scsi/ibmvscsi/ibmvstgt.c
+@@ -864,21 +864,23 @@ static int ibmvstgt_probe(struct vio_dev
+
+ INIT_WORK(&vport->crq_work, handle_crq);
+
+- err = crq_queue_create(&vport->crq_queue, target);
++ err = scsi_add_host(shost, target->dev);
+ if (err)
+ goto free_srp_target;
+
+- err = scsi_add_host(shost, target->dev);
++ err = scsi_tgt_alloc_queue(shost);
+ if (err)
+- goto destroy_queue;
++ goto remove_host;
+
+- err = scsi_tgt_alloc_queue(shost);
++ err = crq_queue_create(&vport->crq_queue, target);
+ if (err)
+- goto destroy_queue;
++ goto free_queue;
+
+ return 0;
+-destroy_queue:
+- crq_queue_destroy(target);
++free_queue:
++ scsi_tgt_free_queue(shost);
++remove_host:
++ scsi_remove_host(shost);
+ free_srp_target:
+ srp_target_free(target);
+ put_host:
async_xor-dma_map-destination-dma_bidirectional.patch
dmaengine-protect-id-from-concurrent-registrations.patch
ioat-wait-for-self-test-completion.patch
+md-don-t-read-past-end-of-bitmap-when-reading-bitmap.patch
+alsa-fix-a-oops-bug-in-omap-soc-driver.patch
+scsi-ibmvstgt-move-crq_queue_create-to-the-end-of-initialization.patch
+scsi-aacraid-disable-dell-percraid-quirk-on-adaptec-2200s-and-2120s.patch
+cciss-fix-problem-that-deleting-multiple-logical-drives-could-cause-a-panic.patch
+alsa-hda-add-missing-terminators-in-patch_sigmatel.c.patch