]> git.ipfire.org Git - thirdparty/kernel/stable-queue.git/commitdiff
3.3-stable patches
authorGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Thu, 10 May 2012 16:34:49 +0000 (09:34 -0700)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Thu, 10 May 2012 16:34:49 +0000 (09:34 -0700)
added patches:
block-mtip32xx-remove-hotplug_pci_pcie-dependancy.patch
mtip32xx-fix-error-handling-in-mtip_init.patch
mtip32xx-fix-incorrect-value-set-for-drv_cleanup_done-and.patch

queue-3.3/block-mtip32xx-remove-hotplug_pci_pcie-dependancy.patch [new file with mode: 0644]
queue-3.3/mtip32xx-fix-error-handling-in-mtip_init.patch [new file with mode: 0644]
queue-3.3/mtip32xx-fix-incorrect-value-set-for-drv_cleanup_done-and.patch [new file with mode: 0644]
queue-3.3/series

diff --git a/queue-3.3/block-mtip32xx-remove-hotplug_pci_pcie-dependancy.patch b/queue-3.3/block-mtip32xx-remove-hotplug_pci_pcie-dependancy.patch
new file mode 100644 (file)
index 0000000..df89b0f
--- /dev/null
@@ -0,0 +1,31 @@
+From 63634806519b49bb43f37e53a1e8366eb3e846a4 Mon Sep 17 00:00:00 2001
+From: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+Date: Thu, 12 Apr 2012 08:47:05 +0200
+Subject: block: mtip32xx: remove HOTPLUG_PCI_PCIE dependancy
+
+From: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+
+commit 63634806519b49bb43f37e53a1e8366eb3e846a4 upstream.
+
+This removes the HOTPLUG_PCI_PCIE dependency on the driver and makes it
+depend on PCI.
+
+Cc: Sam Bradshaw <sbradshaw@micron.com>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+Acked-by: Asai Thambi S P <asamymuthupa@micron.com>
+Signed-off-by: Jens Axboe <axboe@kernel.dk>
+
+---
+ drivers/block/mtip32xx/Kconfig |    2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+--- a/drivers/block/mtip32xx/Kconfig
++++ b/drivers/block/mtip32xx/Kconfig
+@@ -4,6 +4,6 @@
+ config BLK_DEV_PCIESSD_MTIP32XX
+       tristate "Block Device Driver for Micron PCIe SSDs"
+-      depends on HOTPLUG_PCI_PCIE
++      depends on PCI
+       help
+           This enables the block driver for Micron PCIe SSDs.
diff --git a/queue-3.3/mtip32xx-fix-error-handling-in-mtip_init.patch b/queue-3.3/mtip32xx-fix-error-handling-in-mtip_init.patch
new file mode 100644 (file)
index 0000000..1ee905a
--- /dev/null
@@ -0,0 +1,52 @@
+From 6d27f09a6398ee086b11804aa3a16609876f0c7c Mon Sep 17 00:00:00 2001
+From: Ryosuke Saito <raitosyo@gmail.com>
+Date: Thu, 5 Apr 2012 08:09:34 -0600
+Subject: mtip32xx: fix error handling in mtip_init()
+
+From: Ryosuke Saito <raitosyo@gmail.com>
+
+commit 6d27f09a6398ee086b11804aa3a16609876f0c7c upstream.
+
+Ensure that block device is properly unregistered, if
+pci_register_driver() fails.
+
+Signed-off-by: Ryosuke Saito <raitosyo@gmail.com>
+Signed-off-by: Jens Axboe <axboe@kernel.dk>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+
+---
+ drivers/block/mtip32xx/mtip32xx.c |   15 +++++++++++----
+ 1 file changed, 11 insertions(+), 4 deletions(-)
+
+--- a/drivers/block/mtip32xx/mtip32xx.c
++++ b/drivers/block/mtip32xx/mtip32xx.c
+@@ -3605,18 +3605,25 @@ MODULE_DEVICE_TABLE(pci, mtip_pci_tbl);
+  */
+ static int __init mtip_init(void)
+ {
++      int error;
++
+       printk(KERN_INFO MTIP_DRV_NAME " Version " MTIP_DRV_VERSION "\n");
+       /* Allocate a major block device number to use with this driver. */
+-      mtip_major = register_blkdev(0, MTIP_DRV_NAME);
+-      if (mtip_major < 0) {
++      error = register_blkdev(0, MTIP_DRV_NAME);
++      if (error <= 0) {
+               printk(KERN_ERR "Unable to register block device (%d)\n",
+-              mtip_major);
++              error);
+               return -EBUSY;
+       }
++      mtip_major = error;
+       /* Register our PCI operations. */
+-      return pci_register_driver(&mtip_pci_driver);
++      error = pci_register_driver(&mtip_pci_driver);
++      if (error)
++              unregister_blkdev(mtip_major, MTIP_DRV_NAME);
++
++      return error;
+ }
+ /*
diff --git a/queue-3.3/mtip32xx-fix-incorrect-value-set-for-drv_cleanup_done-and.patch b/queue-3.3/mtip32xx-fix-incorrect-value-set-for-drv_cleanup_done-and.patch
new file mode 100644 (file)
index 0000000..0958919
--- /dev/null
@@ -0,0 +1,80 @@
+From 22be2e6e13ac09b20000582ac34d47fb0029a6da Mon Sep 17 00:00:00 2001
+From: Asai Thambi S P <asamymuthupa@micron.com>
+Date: Fri, 23 Mar 2012 12:33:03 +0100
+Subject: mtip32xx: fix incorrect value set for drv_cleanup_done, and
+ re-initialize and start port in mtip_restart_port()
+
+From: Asai Thambi S P <asamymuthupa@micron.com>
+
+commit 22be2e6e13ac09b20000582ac34d47fb0029a6da upstream.
+
+This patch includes two changes:
+       * fix incorrect value set for drv_cleanup_done
+       * re-initialize and start port in mtip_restart_port()
+
+Signed-off-by: Asai Thambi S P <asamymuthupa@micron.com>
+Signed-off-by: Sam Bradshaw <sbradshaw@micron.com>
+Signed-off-by: Jens Axboe <axboe@kernel.dk>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+
+---
+ drivers/block/mtip32xx/mtip32xx.c |   19 ++++++++-----------
+ 1 file changed, 8 insertions(+), 11 deletions(-)
+
+--- a/drivers/block/mtip32xx/mtip32xx.c
++++ b/drivers/block/mtip32xx/mtip32xx.c
+@@ -422,6 +422,10 @@ static void mtip_init_port(struct mtip_p
+       /* Clear any pending interrupts for this port */
+       writel(readl(port->mmio + PORT_IRQ_STAT), port->mmio + PORT_IRQ_STAT);
++      /* Clear any pending interrupts on the HBA. */
++      writel(readl(port->dd->mmio + HOST_IRQ_STAT),
++                                      port->dd->mmio + HOST_IRQ_STAT);
++
+       /* Enable port interrupts */
+       writel(DEF_PORT_IRQ, port->mmio + PORT_IRQ_MASK);
+ }
+@@ -490,11 +494,9 @@ static void mtip_restart_port(struct mti
+               dev_warn(&port->dd->pdev->dev,
+                       "COM reset failed\n");
+-      /* Clear SError, the PxSERR.DIAG.x should be set so clear it */
+-      writel(readl(port->mmio + PORT_SCR_ERR), port->mmio + PORT_SCR_ERR);
++      mtip_init_port(port);
++      mtip_start_port(port);
+-      /* Enable the DMA engine */
+-      mtip_enable_engine(port, 1);
+ }
+ /*
+@@ -3359,9 +3361,6 @@ static int mtip_pci_probe(struct pci_dev
+               return -ENOMEM;
+       }
+-      /* Set the atomic variable as 1 in case of SRSI */
+-      atomic_set(&dd->drv_cleanup_done, true);
+-
+       atomic_set(&dd->resumeflag, false);
+       /* Attach the private data to this PCI device.  */
+@@ -3434,8 +3433,8 @@ iomap_err:
+       pci_set_drvdata(pdev, NULL);
+       return rv;
+ done:
+-      /* Set the atomic variable as 0 in case of SRSI */
+-      atomic_set(&dd->drv_cleanup_done, true);
++      /* Set the atomic variable as 0 */
++      atomic_set(&dd->drv_cleanup_done, false);
+       return rv;
+ }
+@@ -3463,8 +3462,6 @@ static void mtip_pci_remove(struct pci_d
+                       }
+               }
+       }
+-      /* Set the atomic variable as 1 in case of SRSI */
+-      atomic_set(&dd->drv_cleanup_done, true);
+       /* Clean up the block layer. */
+       mtip_block_remove(dd);
index 0854345293bd29339f4724ddd24991819c44b7b6..49ee2cd32268d64fc50452c494f1840bf52fea4d 100644 (file)
@@ -44,3 +44,6 @@ kvm-vmx-fix-kvm_set_shared_msr-called-in-preemptible-context.patch
 kvm-lock-slots_lock-around-device-assignment.patch
 sony-laptop-enable-keyboard-backlight-by-default.patch
 hugepages-fix-use-after-free-bug-in-quota-handling.patch
+mtip32xx-fix-incorrect-value-set-for-drv_cleanup_done-and.patch
+mtip32xx-fix-error-handling-in-mtip_init.patch
+block-mtip32xx-remove-hotplug_pci_pcie-dependancy.patch