From mboxrd@z Thu Jan 1 00:00:00 1970 From: Tejun Heo Subject: Re: [RFT] major libata update Date: Wed, 17 May 2006 09:57:40 +0900 Message-ID: <446A7504.9000201@gmail.com> References: <20060515170006.GA29555@havoc.gtf.org> <4469B93E.6010201@emc.com> <4469E0DB.1040709@garzik.org> <4469EEC0.4060907@gmail.com> <446A1A21.80501@emc.com> <446A63F6.5030706@gmail.com> <446A6615.6050701@garzik.org> <446A678E.8030403@garzik.org> <446A6ECD.7080104@garzik.org> <446A734A.6020504@gmail.com> Mime-Version: 1.0 Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit Return-path: Received: from wr-out-0506.google.com ([64.233.184.224]:64698 "EHLO wr-out-0506.google.com") by vger.kernel.org with ESMTP id S1751016AbWEQA5u (ORCPT ); Tue, 16 May 2006 20:57:50 -0400 Received: by wr-out-0506.google.com with SMTP id i3so103413wra for ; Tue, 16 May 2006 17:57:49 -0700 (PDT) In-Reply-To: <446A734A.6020504@gmail.com> Sender: linux-ide-owner@vger.kernel.org List-Id: linux-ide@vger.kernel.org To: Tejun Heo Cc: Jeff Garzik , ric@emc.com, linux-ide@vger.kernel.org, Mark Lord , Jens Axboe Tejun Heo wrote: > Jeff Garzik wrote: >> Actually, looking even more at the code, I think the entire "spurious >> interrupt" code block is bogus. >> >> The device is free to send D2H or SDB FIS to clear Status bits, as >> well as SDB FIS's to update SActive. The ata_qc_complete_multiple() >> call will do the right thing, even if there is no work to do. > > Yes, they are, but... > > * Please note that SActive update via SDB FIS is edge-triggered. It > doesn't send the whole image of the register. The SActive bits in SDB > FIS indicate W1C (this is inevitable because controller and device > cannot be in full synchronization regarding SActive). So, they have can > have dangerous side effects. > > * Those spurious FISes are actively setting the I bit requesting > interrupt explicitly. Those are not innocent status update FISes. And > the spec state machines don't allow D2H FISes during NCQ command phase. > I seem to recollect it's actually forbidden explicitly but currently > cannot find where. I'll keep looking. Oops, strike out the part about D2H not allowed. It certainly is allowed to clear BSY. Sorry. -- tejun