From patchwork Sun Nov 20 22:29:03 2011 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: David Miller X-Patchwork-Id: 126668 X-Patchwork-Delegate: davem@davemloft.net Return-Path: X-Original-To: patchwork-incoming@ozlabs.org Delivered-To: patchwork-incoming@ozlabs.org Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by ozlabs.org (Postfix) with ESMTP id 88E21B71DE for ; Mon, 21 Nov 2011 09:29:28 +1100 (EST) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1754095Ab1KTW3J (ORCPT ); Sun, 20 Nov 2011 17:29:09 -0500 Received: from shards.monkeyblade.net ([198.137.202.13]:41941 "EHLO shards.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1753934Ab1KTW3I (ORCPT ); Sun, 20 Nov 2011 17:29:08 -0500 Received: from localhost (cpe-66-65-61-233.nyc.res.rr.com [66.65.61.233]) (authenticated bits=0) by shards.monkeyblade.net (8.14.4/8.14.4) with ESMTP id pAKMT3NF007941 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=NO); Sun, 20 Nov 2011 14:29:06 -0800 Date: Sun, 20 Nov 2011 17:29:03 -0500 (EST) Message-Id: <20111120.172903.1343140327482060200.davem@davemloft.net> To: heinzm@redhat.com Cc: sparclinux@vger.kernel.org Subject: Re: bug report: 3.1.0-rc4 doesn't discover my FC drives From: David Miller In-Reply-To: <1321615202.27056.10.camel@o> References: <1321615202.27056.10.camel@o> X-Mailer: Mew version 6.4 on Emacs 23.2 / Mule 6.0 (HANACHIRUSATO) Mime-Version: 1.0 X-Greylist: Sender succeeded SMTP AUTH, not delayed by milter-greylist-4.2.6 (shards.monkeyblade.net [198.137.202.13]); Sun, 20 Nov 2011 14:29:06 -0800 (PST) Sender: sparclinux-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: sparclinux@vger.kernel.org From: Heinz Mauelshagen Date: Fri, 18 Nov 2011 12:20:02 +0100 > I'm not able to discover any FC-drives on my E6500 > (same drives get discovered on an Intel box) with 3.1.0-rc4. > > Is this a known issue? > Wrong driver? > Any hints to analyze further? The common problem with hardware as old as these SBUS scsi controllers is that the SCSI protocol sequence is done by firmware and this firmware is 15 years old and hasn't been updated since. So the more recent the devices are which you try to hook up to them, the less likely they'll be usable with such an old controller. There's a patch below for the qlogicpti driver that will add some tracing to the SCSI bus probe, so you can try it out to see what might be happening. But, I wonder, are you sure the drives are attached to the qlogicpti card? You say FC disks, but qlogicpti is SCSI. The SBUS fibre-channel controllers Sun made aren't supported, we had to rip the old drivers we had out of the tree nearly 10 years ago because 1) the drivers were unmaintained and rapidly rotting and 2) we never were able to secure the right to distribute the firmware for those cards in any way so people had to extract the firmware from the Solaris drivers in a cumbersome way to even to try and use these cards. --- To unsubscribe from this list: send the line "unsubscribe sparclinux" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html diff --git a/drivers/scsi/qlogicpti.c b/drivers/scsi/qlogicpti.c index e40dc1c..8d01193 100644 --- a/drivers/scsi/qlogicpti.c +++ b/drivers/scsi/qlogicpti.c @@ -48,6 +48,7 @@ #include #include #include +#include #define MAX_TARGETS 16 #define MAX_LUNS 8 /* 32 for 1.31 F/W */ @@ -1011,6 +1012,8 @@ static int qlogicpti_queuecommand_lck(struct scsi_cmnd *Cmnd, void (*done)(struc u_int out_ptr; int in_ptr; + pr_info("qlogicpti: Queueing command %p\n", Cmnd); + scsi_print_command(Cmnd); Cmnd->scsi_done = done; in_ptr = qpti->req_in_ptr; @@ -1169,12 +1172,19 @@ static struct scsi_cmnd *qlogicpti_intr_handler(struct qlogicpti *qpti) memcpy(Cmnd->sense_buffer, sts->req_sense_data, SCSI_SENSE_BUFFERSIZE); + pr_info("qlogicpti: Completing command %p, entry_type[0x%02x]\n", + Cmnd, sts->hdr.entry_type); + pr_info("qlogicpti: sts->completion_status[0x%016x]\n", + sts->completion_status); + if (sts->hdr.entry_type == ENTRY_STATUS) Cmnd->result = qlogicpti_return_status(sts, qpti->qpti_id); else Cmnd->result = DID_ERROR << 16; + scsi_print_result(Cmnd); + if (scsi_bufflen(Cmnd)) dma_unmap_sg(&qpti->op->dev, scsi_sglist(Cmnd), scsi_sg_count(Cmnd),