Commit 6e40e5f0 authored by Mahesh Rajashekhara's avatar Mahesh Rajashekhara Committed by James Bottomley

[SCSI] aacraid: kdump fix

This patch fixes kernel panic issue while booting into the kdump kernel.

We have triggered crash and kdump vmcore was successful. No issues seen while
booting into the OS.
Signed-off-by: default avatarMahesh Rajashekhara <Mahesh.Rajashekhara@pmcs.com>
Reviewed-by: default avatarTomas Henzl <thenzl@redhat.com>
Signed-off-by: default avatarJames Bottomley <JBottomley@Parallels.com>
parent 3de22601
...@@ -12,7 +12,7 @@ ...@@ -12,7 +12,7 @@
*----------------------------------------------------------------------------*/ *----------------------------------------------------------------------------*/
#ifndef AAC_DRIVER_BUILD #ifndef AAC_DRIVER_BUILD
# define AAC_DRIVER_BUILD 30200 # define AAC_DRIVER_BUILD 30300
# define AAC_DRIVER_BRANCH "-ms" # define AAC_DRIVER_BRANCH "-ms"
#endif #endif
#define MAXIMUM_NUM_CONTAINERS 32 #define MAXIMUM_NUM_CONTAINERS 32
......
...@@ -480,7 +480,7 @@ static int aac_rx_ioremap(struct aac_dev * dev, u32 size) ...@@ -480,7 +480,7 @@ static int aac_rx_ioremap(struct aac_dev * dev, u32 size)
static int aac_rx_restart_adapter(struct aac_dev *dev, int bled) static int aac_rx_restart_adapter(struct aac_dev *dev, int bled)
{ {
u32 var; u32 var = 0;
if (!(dev->supplement_adapter_info.SupportedOptions2 & if (!(dev->supplement_adapter_info.SupportedOptions2 &
AAC_OPTION_MU_RESET) || (bled >= 0) || (bled == -2)) { AAC_OPTION_MU_RESET) || (bled >= 0) || (bled == -2)) {
...@@ -500,13 +500,14 @@ static int aac_rx_restart_adapter(struct aac_dev *dev, int bled) ...@@ -500,13 +500,14 @@ static int aac_rx_restart_adapter(struct aac_dev *dev, int bled)
if (bled && (bled != -ETIMEDOUT)) if (bled && (bled != -ETIMEDOUT))
return -EINVAL; return -EINVAL;
} }
if (bled || (var == 0x3803000F)) { /* USE_OTHER_METHOD */ if (bled && (var == 0x3803000F)) { /* USE_OTHER_METHOD */
rx_writel(dev, MUnit.reserved2, 3); rx_writel(dev, MUnit.reserved2, 3);
msleep(5000); /* Delay 5 seconds */ msleep(5000); /* Delay 5 seconds */
var = 0x00000001; var = 0x00000001;
} }
if (var != 0x00000001) if (bled && (var != 0x00000001))
return -EINVAL; return -EINVAL;
ssleep(5);
if (rx_readl(dev, MUnit.OMRx[0]) & KERNEL_PANIC) if (rx_readl(dev, MUnit.OMRx[0]) & KERNEL_PANIC)
return -ENODEV; return -ENODEV;
if (startup_timeout < 300) if (startup_timeout < 300)
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment