These changes are the raw update to linux-4.4.6-rt14. Kernel sources
[kvmfornfv.git] / kernel / drivers / block / cciss.c
index ff20f19..0422c47 100644 (file)
@@ -139,8 +139,6 @@ static struct board_type products[] = {
        {0x3214103C, "Smart Array E200i", &SA5_access},
        {0x3215103C, "Smart Array E200i", &SA5_access},
        {0x3237103C, "Smart Array E500", &SA5_access},
-       {0x3223103C, "Smart Array P800", &SA5_access},
-       {0x3234103C, "Smart Array P400", &SA5_access},
        {0x323D103C, "Smart Array P700m", &SA5_access},
 };
 
@@ -574,8 +572,6 @@ static void cciss_procinit(ctlr_info_t *h)
 
 /* List of controllers which cannot be hard reset on kexec with reset_devices */
 static u32 unresettable_controller[] = {
-       0x324a103C, /* Smart Array P712m */
-       0x324b103C, /* SmartArray P711m */
        0x3223103C, /* Smart Array P800 */
        0x3234103C, /* Smart Array P400 */
        0x3235103C, /* Smart Array P400i */
@@ -586,12 +582,32 @@ static u32 unresettable_controller[] = {
        0x3215103C, /* Smart Array E200i */
        0x3237103C, /* Smart Array E500 */
        0x323D103C, /* Smart Array P700m */
+       0x40800E11, /* Smart Array 5i */
        0x409C0E11, /* Smart Array 6400 */
        0x409D0E11, /* Smart Array 6400 EM */
+       0x40700E11, /* Smart Array 5300 */
+       0x40820E11, /* Smart Array 532 */
+       0x40830E11, /* Smart Array 5312 */
+       0x409A0E11, /* Smart Array 641 */
+       0x409B0E11, /* Smart Array 642 */
+       0x40910E11, /* Smart Array 6i */
 };
 
 /* List of controllers which cannot even be soft reset */
 static u32 soft_unresettable_controller[] = {
+       0x40800E11, /* Smart Array 5i */
+       0x40700E11, /* Smart Array 5300 */
+       0x40820E11, /* Smart Array 532 */
+       0x40830E11, /* Smart Array 5312 */
+       0x409A0E11, /* Smart Array 641 */
+       0x409B0E11, /* Smart Array 642 */
+       0x40910E11, /* Smart Array 6i */
+       /* Exclude 640x boards.  These are two pci devices in one slot
+        * which share a battery backed cache module.  One controls the
+        * cache, the other accesses the cache through the one that controls
+        * it.  If we reset the one controlling the cache, the other will
+        * likely not be happy.  Just forbid resetting this conjoined mess.
+        */
        0x409C0E11, /* Smart Array 6400 */
        0x409D0E11, /* Smart Array 6400 EM */
 };
@@ -4667,8 +4683,7 @@ static int cciss_kdump_hard_reset_controller(struct pci_dev *pdev)
         */
        cciss_lookup_board_id(pdev, &board_id);
        if (!ctlr_is_resettable(board_id)) {
-               dev_warn(&pdev->dev, "Cannot reset Smart Array 640x "
-                               "due to shared cache module.");
+               dev_warn(&pdev->dev, "Controller not resettable\n");
                return -ENODEV;
        }