Re: More on the IDE multiwrite problem

Mark Lord (mlord@pobox.com)
Sat, 18 Dec 1999 13:19:20 -0500


This is a multi-part message in MIME format.
--------------3EDE24D8364FED72F96A4E2C
Content-Type: text/plain; charset=us-ascii
Content-Transfer-Encoding: 7bit

TenThumbs wrote:
> Mark Lord wrote:
> > Okay, the error reported must be from the second ide_multwrite() call,
> > after the "END IRQ" in Alan's scenario above. This could all make sense.
> >
> > If so, reinstating the disable/enable calls *for this fragment only*
> > should cure the problem 100%.
..
> I'm still seeing the problem in 2.2.14pre15 although it may have moved.
..
> Do you have a patch to try?

Yup. Attached.

Could you tell me more about your system?
Eg.. what IDE chipset is having the problem,
does it share interrupts with anything,
and is your kernel SMP, or UP?

-- 
Mark Lord
Real-Time Remedies Inc.
mlord@pobox.com
--------------3EDE24D8364FED72F96A4E2C
Content-Type: text/plain; charset=us-ascii;
 name="ide-2.2.14pre.fix"
Content-Transfer-Encoding: 7bit
Content-Disposition: inline;
 filename="ide-2.2.14pre.fix"

--- linux-2.2.14pre13ac-ml/drivers/block/ide-disk.c.orig Mon Dec 13 22:44:35 1999 +++ linux/drivers/block/ide-disk.c Sat Dec 18 13:12:54 1999 @@ -416,6 +416,7 @@ * in ide_multwrite(), then we need to remove the handler/timer * before returning. Fortunately, this NEVER happens (right?). */ + disable_irq_nosync(HWIF(drive)->irq); hwgroup->wrq = *rq; /* scratchpad */ ide_set_handler (drive, &multwrite_intr, WAIT_CMD); if (ide_multwrite(drive, drive->mult_count)) { @@ -424,8 +425,10 @@ hwgroup->handler = NULL; del_timer(&hwgroup->timer); spin_unlock_irqrestore(&io_request_lock, flags); + enable_irq(HWIF(drive)->irq); return ide_stopped; } + enable_irq(HWIF(drive)->irq); } else { ide_set_handler (drive, &write_intr, WAIT_CMD); idedisk_output_data(drive, rq->buffer, SECTOR_WORDS);

--------------3EDE24D8364FED72F96A4E2C--

- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.rutgers.edu Please read the FAQ at http://www.tux.org/lkml/