Commit bf471341 authored by Andrew Morton's avatar Andrew Morton Committed by James Bottomley
Browse files

[SCSI] revert "[SCSI] ips soft lockup during reset/initialization"



Revert 15084a4a - it caused a
scheduling-inside-spinlock bug.

Cc: Nishanth Aravamudan <nacc@us.ibm.com>
Cc: Nick Piggin <nickpiggin@yahoo.com.au>
Cc: Jack Hammer <jack_hammer@adaptec.com>
Signed-off-by: default avatarAndrew Morton <akpm@osdl.org>
Signed-off-by: default avatarJames Bottomley <James.Bottomley@SteelEye.com>
parent 08157cd0
Loading
Loading
Loading
Loading
+14 −14
Original line number Original line Diff line number Diff line
@@ -5001,7 +5001,7 @@ ips_init_copperhead(ips_ha_t * ha)
				break;
				break;


			/* Delay for 1 Second */
			/* Delay for 1 Second */
			msleep(IPS_ONE_SEC);
			MDELAY(IPS_ONE_SEC);
		}
		}


		if (j >= 45)
		if (j >= 45)
@@ -5027,7 +5027,7 @@ ips_init_copperhead(ips_ha_t * ha)
				break;
				break;


			/* Delay for 1 Second */
			/* Delay for 1 Second */
			msleep(IPS_ONE_SEC);
			MDELAY(IPS_ONE_SEC);
		}
		}


		if (j >= 240)
		if (j >= 240)
@@ -5045,7 +5045,7 @@ ips_init_copperhead(ips_ha_t * ha)
			break;
			break;


		/* Delay for 1 Second */
		/* Delay for 1 Second */
		msleep(IPS_ONE_SEC);
		MDELAY(IPS_ONE_SEC);
	}
	}


	if (i >= 240)
	if (i >= 240)
@@ -5095,7 +5095,7 @@ ips_init_copperhead_memio(ips_ha_t * ha)
				break;
				break;


			/* Delay for 1 Second */
			/* Delay for 1 Second */
			msleep(IPS_ONE_SEC);
			MDELAY(IPS_ONE_SEC);
		}
		}


		if (j >= 45)
		if (j >= 45)
@@ -5121,7 +5121,7 @@ ips_init_copperhead_memio(ips_ha_t * ha)
				break;
				break;


			/* Delay for 1 Second */
			/* Delay for 1 Second */
			msleep(IPS_ONE_SEC);
			MDELAY(IPS_ONE_SEC);
		}
		}


		if (j >= 240)
		if (j >= 240)
@@ -5139,7 +5139,7 @@ ips_init_copperhead_memio(ips_ha_t * ha)
			break;
			break;


		/* Delay for 1 Second */
		/* Delay for 1 Second */
		msleep(IPS_ONE_SEC);
		MDELAY(IPS_ONE_SEC);
	}
	}


	if (i >= 240)
	if (i >= 240)
@@ -5191,7 +5191,7 @@ ips_init_morpheus(ips_ha_t * ha)
			break;
			break;


		/* Delay for 1 Second */
		/* Delay for 1 Second */
		msleep(IPS_ONE_SEC);
		MDELAY(IPS_ONE_SEC);
	}
	}


	if (i >= 45) {
	if (i >= 45) {
@@ -5217,7 +5217,7 @@ ips_init_morpheus(ips_ha_t * ha)
			if (Post != 0x4F00)
			if (Post != 0x4F00)
				break;
				break;
			/* Delay for 1 Second */
			/* Delay for 1 Second */
			msleep(IPS_ONE_SEC);
			MDELAY(IPS_ONE_SEC);
		}
		}


		if (i >= 120) {
		if (i >= 120) {
@@ -5247,7 +5247,7 @@ ips_init_morpheus(ips_ha_t * ha)
			break;
			break;


		/* Delay for 1 Second */
		/* Delay for 1 Second */
		msleep(IPS_ONE_SEC);
		MDELAY(IPS_ONE_SEC);
	}
	}


	if (i >= 240) {
	if (i >= 240) {
@@ -5307,12 +5307,12 @@ ips_reset_copperhead(ips_ha_t * ha)
		outb(IPS_BIT_RST, ha->io_addr + IPS_REG_SCPR);
		outb(IPS_BIT_RST, ha->io_addr + IPS_REG_SCPR);


		/* Delay for 1 Second */
		/* Delay for 1 Second */
		msleep(IPS_ONE_SEC);
		MDELAY(IPS_ONE_SEC);


		outb(0, ha->io_addr + IPS_REG_SCPR);
		outb(0, ha->io_addr + IPS_REG_SCPR);


		/* Delay for 1 Second */
		/* Delay for 1 Second */
		msleep(IPS_ONE_SEC);
		MDELAY(IPS_ONE_SEC);


		if ((*ha->func.init) (ha))
		if ((*ha->func.init) (ha))
			break;
			break;
@@ -5352,12 +5352,12 @@ ips_reset_copperhead_memio(ips_ha_t * ha)
		writeb(IPS_BIT_RST, ha->mem_ptr + IPS_REG_SCPR);
		writeb(IPS_BIT_RST, ha->mem_ptr + IPS_REG_SCPR);


		/* Delay for 1 Second */
		/* Delay for 1 Second */
		msleep(IPS_ONE_SEC);
		MDELAY(IPS_ONE_SEC);


		writeb(0, ha->mem_ptr + IPS_REG_SCPR);
		writeb(0, ha->mem_ptr + IPS_REG_SCPR);


		/* Delay for 1 Second */
		/* Delay for 1 Second */
		msleep(IPS_ONE_SEC);
		MDELAY(IPS_ONE_SEC);


		if ((*ha->func.init) (ha))
		if ((*ha->func.init) (ha))
			break;
			break;
@@ -5398,7 +5398,7 @@ ips_reset_morpheus(ips_ha_t * ha)
		writel(0x80000000, ha->mem_ptr + IPS_REG_I960_IDR);
		writel(0x80000000, ha->mem_ptr + IPS_REG_I960_IDR);


		/* Delay for 5 Seconds */
		/* Delay for 5 Seconds */
		msleep(5 * IPS_ONE_SEC);
		MDELAY(5 * IPS_ONE_SEC);


		/* Do a PCI config read to wait for adapter */
		/* Do a PCI config read to wait for adapter */
		pci_read_config_byte(ha->pcidev, 4, &junk);
		pci_read_config_byte(ha->pcidev, 4, &junk);