On Sun, 2006-09-17 at 09:05 -0500, James Bottomley wrote: > On Sun, 2006-09-17 at 07:38 +0200, Olaf Hering wrote: > > As pointed out in private mail, this patch fixes the machine check for > > me. Thanks Doug. > > > > Maybe the AHC_ULTRA2 feature check is needed as well for other cards. > > It is ... the non ULTRA2 non twin cards might not have this register > (and if they do, it doesn't reflect the LVD/SE bus setting). > > This is a pretty significant alteration, so it's not a -rc candidate, > but I'll put it in scsi-misc and see how it works out. No, it's present on all cards. Reading it for signaling may not be needed on non-ultra 2 cards (as far as LVD goes), but it won't hurt. However, all the other places this particular register is touched in the driver, the card is already paused. Olaf's problem may be that this is one of the registers that require the sequencer be paused before you touch it. Depending on the chipset, if you touch a pause only register, it either pukes up like Olaf is seeing or auto pauses the chip. I had thought that all the Ultra2 chipsets did autopause, but maybe the current driver disables that (and even if it did autopause, you would still need an unpause or else the card stops until the next time something happens that includes a pause/unpause pair). Anyway, I asked Olaf to try wrapping the read in an ahc_lock/unlock and pause/unpause pair to see if it makes a difference. We'll see. -- Doug Ledford <dledford@xxxxxxxxxx> GPG KeyID: CFBFF194 http://people.redhat.com/dledford Infiniband specific RPMs available at http://people.redhat.com/dledford/Infiniband
Attachment:
signature.asc
Description: This is a digitally signed message part