lkml.org 
[lkml]   [1999]   [Dec]   [18]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
Patch in this message
/
Date
From
SubjectRe: More on the IDE multiwrite problem
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--- 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);
\
 
 \ /
  Last update: 2005-03-22 13:55    [W:0.122 / U:0.192 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site