]> git.ipfire.org Git - thirdparty/kernel/stable-queue.git/commitdiff
more .27 patches
authorGreg Kroah-Hartman <gregkh@suse.de>
Fri, 9 Jan 2009 00:46:26 +0000 (16:46 -0800)
committerGreg Kroah-Hartman <gregkh@suse.de>
Fri, 9 Jan 2009 00:46:26 +0000 (16:46 -0800)
queue-2.6.27/alsa-fix-a-oops-bug-in-omap-soc-driver.patch [new file with mode: 0644]
queue-2.6.27/alsa-hda-add-missing-terminators-in-patch_sigmatel.c.patch [new file with mode: 0644]
queue-2.6.27/cciss-fix-problem-that-deleting-multiple-logical-drives-could-cause-a-panic.patch [new file with mode: 0644]
queue-2.6.27/md-don-t-read-past-end-of-bitmap-when-reading-bitmap.patch [new file with mode: 0644]
queue-2.6.27/scsi-aacraid-disable-dell-percraid-quirk-on-adaptec-2200s-and-2120s.patch [new file with mode: 0644]
queue-2.6.27/scsi-ibmvstgt-move-crq_queue_create-to-the-end-of-initialization.patch [new file with mode: 0644]
queue-2.6.27/series

diff --git a/queue-2.6.27/alsa-fix-a-oops-bug-in-omap-soc-driver.patch b/queue-2.6.27/alsa-fix-a-oops-bug-in-omap-soc-driver.patch
new file mode 100644 (file)
index 0000000..c17ef22
--- /dev/null
@@ -0,0 +1,33 @@
+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;
diff --git a/queue-2.6.27/alsa-hda-add-missing-terminators-in-patch_sigmatel.c.patch b/queue-2.6.27/alsa-hda-add-missing-terminators-in-patch_sigmatel.c.patch
new file mode 100644 (file)
index 0000000..8bcaac5
--- /dev/null
@@ -0,0 +1,27 @@
+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
diff --git a/queue-2.6.27/cciss-fix-problem-that-deleting-multiple-logical-drives-could-cause-a-panic.patch b/queue-2.6.27/cciss-fix-problem-that-deleting-multiple-logical-drives-could-cause-a-panic.patch
new file mode 100644 (file)
index 0000000..e9679df
--- /dev/null
@@ -0,0 +1,42 @@
+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);
diff --git a/queue-2.6.27/md-don-t-read-past-end-of-bitmap-when-reading-bitmap.patch b/queue-2.6.27/md-don-t-read-past-end-of-bitmap-when-reading-bitmap.patch
new file mode 100644 (file)
index 0000000..c894d98
--- /dev/null
@@ -0,0 +1,91 @@
+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 */
diff --git a/queue-2.6.27/scsi-aacraid-disable-dell-percraid-quirk-on-adaptec-2200s-and-2120s.patch b/queue-2.6.27/scsi-aacraid-disable-dell-percraid-quirk-on-adaptec-2200s-and-2120s.patch
new file mode 100644 (file)
index 0000000..13b52af
--- /dev/null
@@ -0,0 +1,47 @@
+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) */
diff --git a/queue-2.6.27/scsi-ibmvstgt-move-crq_queue_create-to-the-end-of-initialization.patch b/queue-2.6.27/scsi-ibmvstgt-move-crq_queue_create-to-the-end-of-initialization.patch
new file mode 100644 (file)
index 0000000..98c54db
--- /dev/null
@@ -0,0 +1,57 @@
+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:
index 000bb5db3886178457a23e2542404618d9121fc5..bc00cc18f833be95e35d81fe30114c53d31ad031 100644 (file)
@@ -7,3 +7,9 @@ iwlagn-downgrade-bug_on-in-interrupt.patch
 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