From mboxrd@z Thu Jan 1 00:00:00 1970 From: Jeff Garzik Subject: Re: Commit 54c38444fad6a99b4b19512f8f0055d69115e69e Date: Thu, 17 Sep 2009 03:11:18 -0400 Message-ID: <4AB1E116.6030600@garzik.org> References: <4AB0D258.60503@kernel.org> Mime-Version: 1.0 Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit Return-path: Received: from srv5.dvmed.net ([207.36.208.214]:53964 "EHLO mail.dvmed.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1758159AbZIQHLR (ORCPT ); Thu, 17 Sep 2009 03:11:17 -0400 In-Reply-To: <4AB0D258.60503@kernel.org> Sender: linux-ide-owner@vger.kernel.org List-Id: linux-ide@vger.kernel.org To: Tejun Heo Cc: IDE/ATA development list On 09/16/2009 07:56 AM, Tejun Heo wrote: > Jeff, > > Commit 54c38444fad6a99b4b19512f8f0055d69115e69e triggers > WARN_ON_ONCE(ap->pflags& ATA_PFLAG_FROZEN); in ata_qc_complete(). >> From the commit history, it seems the change was to add DMA engine > disable to sil_freeze(), right? I can't see why changing the orders > would matter there. ata_port_abort() just changes the internal state > of libata and doesn't affect low level driver or the hardware. ata_port_abort does more than change internal state: it calls ata_qc_complete, which could trigger a taskfile register read. All SFF BMDMA controllers /must/ disable the DMA engine, before touching the taskfile device register block. Jeff