Re: SMP

Linus Torvalds (torvalds@transmeta.com)
23 Apr 1997 15:55:22 GMT


In article <Pine.LNX.3.91.970423083055.1005A-100000@chaos.analogic.com>,
Richard B. Johnson <root@analogic.com> wrote:
>On Tue, 22 Apr 1997, Ingo Molnar wrote:
>
>> On Tue, 22 Apr 1997, Richard B. Johnson wrote:
>>
>> > More problems with 2.1.36x SMP machine. I found it this morning
>> > with an OOPS... pertainent data are copied from the screen
>> >
>> > end_scsi_request : buffer-list destroyed
>> > end_scsi_request : buffer-list destroyed
>> > attempt to access beyond end of device
>> >
>> > kernel panic EXT2-fs panic
>>
>> Does the attached patch help you? Slight chance only ...
>>
>> -- mingo
>>
>> --- aic7xxx.c.orig Tue Apr 22 23:38:17 1997
>> +++ aic7xxx.c Tue Apr 22 23:40:01 1997
>> @@ -457,6 +457,7 @@
>> * sections.
>> */
>> #define PAUSE_SEQUENCER(p) \
>> + synchronize_irq(); \
>> outb(p->pause, HCNTRL + p->base); \
>> while ((inb(HCNTRL + p->base) & PAUSE) == 0) \
>> ; \
>>
>YES! YES! In fact it does! The midnight crash occurs during my crond
>backup using this controller. I hacked something like this in an
>attempt to "solve" the problem. I was too dumb to put it in the
>macro <grin>.

I suspect the "synchronize_irq()" call should really come in _after_ the
other things in the #define. Putting it first like above will make the
race window _really_ small, but there is still a small race there.

Linus