Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

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

[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
Loading
Loading
Loading
Loading
+1 −1
Original line number Original line Diff line number Diff line
@@ -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
+4 −3
Original line number Original line Diff line number Diff line
@@ -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)
		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)