From mboxrd@z Thu Jan 1 00:00:00 1970 From: Jeff Garzik Subject: Re: [PATCH] libata: add host_set->next for legacy two host_sets case, take #2 Date: Mon, 12 Jun 2006 09:35:59 -0400 Message-ID: <448D6DBF.9010604@pobox.com> References: <20060612051727.GD9166@htj.dyndns.org> <448D0FF9.1080605@pobox.com> <20060612101419.GB5751@htj.dyndns.org> Mime-Version: 1.0 Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit Return-path: Received: from srv5.dvmed.net ([207.36.208.214]:47762 "EHLO mail.dvmed.net") by vger.kernel.org with ESMTP id S1751968AbWFLNgD (ORCPT ); Mon, 12 Jun 2006 09:36:03 -0400 In-Reply-To: <20060612101419.GB5751@htj.dyndns.org> Sender: linux-ide-owner@vger.kernel.org List-Id: linux-ide@vger.kernel.org To: Tejun Heo Cc: linux-ide@vger.kernel.org, Albert Lee Tejun Heo wrote: > For a legacy ATA controller, libata registers two separate host sets. > There was no connection between the two hosts making it impossible to > traverse all ports related to the controller. This patch adds > host_set->next which points to the second host_set and makes > ata_host_set_remove() remove all associated host_sets and ports. > > * On device removal, all ports hanging off the device are properly > detached. Prior to this patch, ports on the first host_set weren't > detached casuing oops on driver unloading. > > * On device removal, both host_sets are properly freed > > This will also be used by new power management code to suspend and > resume all ports of a controller. host_set/port representation will > be improved to handle legacy controllers better and this host_set > linking will go away with it. > > Signed-off-by: Tejun Heo Same objection as before: ata_host_set_remove() should only remove _one_ host_set. Therefore, that function is ignorant of the linked list, and the caller is the one that is forced to manage the list. Jeff