From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S932129Ab0IXNlV (ORCPT ); Fri, 24 Sep 2010 09:41:21 -0400 Received: from e2.ny.us.ibm.com ([32.97.182.142]:34958 "EHLO e2.ny.us.ibm.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S932075Ab0IXNlT (ORCPT ); Fri, 24 Sep 2010 09:41:19 -0400 Message-ID: <4C9CAA80.1030702@linux.vnet.ibm.com> Date: Fri, 24 Sep 2010 08:41:20 -0500 From: Brian King User-Agent: Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.9.1.11) Gecko/20100714 SUSE/3.0.6 Thunderbird/3.0.6 MIME-Version: 1.0 To: "Nicholas A. Bellinger" CC: linux-scsi , linux-kernel , Vasu Dev , Tim Chen , Andi Kleen , Matthew Wilcox , James Bottomley , Mike Christie , James Smart , Andrew Vasquez , FUJITA Tomonori , Hannes Reinecke , Joe Eykholt , Christoph Hellwig , MPTFusionLinux , "eata.c maintainer" Subject: Re: [RFC v3 01/15] scsi: Drop struct Scsi_Host->host_lock usage in scsi_dispatch_cmd() References: <1285285052-16351-1-git-send-email-nab@linux-iscsi.org> In-Reply-To: <1285285052-16351-1-git-send-email-nab@linux-iscsi.org> Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On 09/23/2010 06:37 PM, Nicholas A. Bellinger wrote: > @@ -651,7 +655,6 @@ static inline void scsi_cmd_get_serial(struct Scsi_Host *host, struct scsi_cmnd > int scsi_dispatch_cmd(struct scsi_cmnd *cmd) > { > struct Scsi_Host *host = cmd->device->host; > - unsigned long flags = 0; > unsigned long timeout; > int rtn = 0; > > @@ -736,15 +739,11 @@ int scsi_dispatch_cmd(struct scsi_cmnd *cmd) > scsi_done(cmd); > goto out; > } > - > - spin_lock_irqsave(host->host_lock, flags); > /* > - * AK: unlikely race here: for some reason the timer could > - * expire before the serial number is set up below. > - * > - * TODO: kill serial or move to blk layer > + * Note that scsi_cmd_get_serial() used to be called here, but > + * now we expect the legacy SCSI LLDs that actually need this > + * to call it directly within their SHT->queuecommand() caller. > */ > - scsi_cmd_get_serial(host, cmd); > > if (unlikely(host->shost_state == SHOST_DEL)) { > cmd->result = (DID_NO_CONNECT << 16); > @@ -753,7 +752,7 @@ int scsi_dispatch_cmd(struct scsi_cmnd *cmd) > trace_scsi_dispatch_cmd_start(cmd); > rtn = host->hostt->queuecommand(cmd, scsi_done); > } > - spin_unlock_irqrestore(host->host_lock, flags); > + > if (rtn) { > trace_scsi_dispatch_cmd_error(cmd, rtn); > if (rtn != SCSI_MLQUEUE_DEVICE_BUSY && Are you planning a future revision that moves the acquiring of the host lock into the LLDD's queuecommand for all the other drivers you don't currently touch in this patch set? -- Brian King Linux on Power Virtualization IBM Linux Technology Center