Message ID | 20170705225134.GA31786@infradead.org (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
> Hi Meelis, > > can you try the patch below? Yes, the OOPS is gone and everything seems to be working. > Also we're trying to move people away from the cciss driver, can you > check if the hpsa SCSI driver works for you as well? I have older adapter: Compaq Computer Corporation Smart Array 64xx [0e11:0046] (rev 01) That does not seem to be supported by hpsa AFAICS.
On Thu, Jul 06, 2017 at 12:55:04PM +0300, Meelis Roos wrote: > > Also we're trying to move people away from the cciss driver, can you > > check if the hpsa SCSI driver works for you as well? > > I have older adapter: > > Compaq Computer Corporation Smart Array 64xx [0e11:0046] (rev 01) > > That does not seem to be supported by hpsa AFAICS. Looks like. Although hpsa has support for various SA5 controllers it seems like it decided to skip all Compaq branded controllers. As far as I can tell we could simply add support for those to hpsa. Ccing hpsa folks to figure out if that's the case.
On 07/07/2017 09:00 AM, Christoph Hellwig wrote: > On Thu, Jul 06, 2017 at 12:55:04PM +0300, Meelis Roos wrote: >>> Also we're trying to move people away from the cciss driver, can you >>> check if the hpsa SCSI driver works for you as well? >> >> I have older adapter: >> >> Compaq Computer Corporation Smart Array 64xx [0e11:0046] (rev 01) >> >> That does not seem to be supported by hpsa AFAICS. > > Looks like. Although hpsa has support for various SA5 controllers > it seems like it decided to skip all Compaq branded controllers. > > As far as I can tell we could simply add support for those to > hpsa. Ccing hpsa folks to figure out if that's the case. Pretty sure Hannes had a patch he tested for that, he talked about that back at LSFMM earlier this year. Hannes?
On 07/07/2017 11:03 AM, Jens Axboe wrote: > On 07/07/2017 09:00 AM, Christoph Hellwig wrote: >> On Thu, Jul 06, 2017 at 12:55:04PM +0300, Meelis Roos wrote: >>>> Also we're trying to move people away from the cciss driver, can you >>>> check if the hpsa SCSI driver works for you as well? >>> >>> I have older adapter: >>> >>> Compaq Computer Corporation Smart Array 64xx [0e11:0046] (rev 01) >>> >>> That does not seem to be supported by hpsa AFAICS. >> >> Looks like. Although hpsa has support for various SA5 controllers >> it seems like it decided to skip all Compaq branded controllers. >> >> As far as I can tell we could simply add support for those to >> hpsa. Ccing hpsa folks to figure out if that's the case. > > Pretty sure Hannes had a patch he tested for that, he talked about > that back at LSFMM earlier this year. Hannes? > What happens when hpsa_allow_any=1 with the Smart Array 64xx It should probe.
On 07/07/2017 05:03 PM, Jens Axboe wrote: > On 07/07/2017 09:00 AM, Christoph Hellwig wrote: >> On Thu, Jul 06, 2017 at 12:55:04PM +0300, Meelis Roos wrote: >>>> Also we're trying to move people away from the cciss driver, can you >>>> check if the hpsa SCSI driver works for you as well? >>> >>> I have older adapter: >>> >>> Compaq Computer Corporation Smart Array 64xx [0e11:0046] (rev 01) >>> >>> That does not seem to be supported by hpsa AFAICS. >> >> Looks like. Although hpsa has support for various SA5 controllers >> it seems like it decided to skip all Compaq branded controllers. >> >> As far as I can tell we could simply add support for those to >> hpsa. Ccing hpsa folks to figure out if that's the case. > > Pretty sure Hannes had a patch he tested for that, he talked about > that back at LSFMM earlier this year. Hannes? > Oh, I do. hpsa is working happily on SLES for _all_ SmartArray controllers. You need to enable 'hpsa_allow_any=1', though. But I'm perfectly happy with making that the default and drop cciss completely. Cheers, Hannes
On Fri, Jul 07, 2017 at 11:42:38AM -0400, Laurence Oberman wrote: > What happens when hpsa_allow_any=1 with the Smart Array 64xx > It should probe. But only if it has a HP vendor ID as far as I can tell. We'd still need to add the compaq ids so that these controllers get probed. But maybe it's time to add them and flip the hpsa_allow_any default (maybe conditionally on a config option?) and mark cciss deprecated.
On 07/07/2017 02:08 PM, Christoph Hellwig wrote: > On Fri, Jul 07, 2017 at 11:42:38AM -0400, Laurence Oberman wrote: >> What happens when hpsa_allow_any=1 with the Smart Array 64xx >> It should probe. > > But only if it has a HP vendor ID as far as I can tell. We'd > still need to add the compaq ids so that these controllers get > probed. But maybe it's time to add them and flip the hpsa_allow_any > default (maybe conditionally on a config option?) and mark cciss > deprecated. > Agreed, I vote yes.
> -----Original Message----- > From: Hannes Reinecke [mailto:hare@suse.de] > Sent: Friday, July 07, 2017 11:05 AM > To: Jens Axboe <axboe@kernel.dk>; Christoph Hellwig > <hch@infradead.org>; Meelis Roos <mroos@linux.ee> > Cc: Linux Kernel list <linux-kernel@vger.kernel.org>; linux- > block@vger.kernel.org; Don Brace <don.brace@microsemi.com>; Scott > Benesh <scott.benesh@microsemi.com>; Scott Teel > <scott.teel@microsemi.com>; Kevin Barnett > <kevin.barnett@microsemi.com>; linux-scsi@vger.kernel.org > Subject: Re: device support in hpasa, was: Re: OOPS from cciss_ioctl in > 4.12+git > > EXTERNAL EMAIL > > > On 07/07/2017 05:03 PM, Jens Axboe wrote: > > On 07/07/2017 09:00 AM, Christoph Hellwig wrote: > >> On Thu, Jul 06, 2017 at 12:55:04PM +0300, Meelis Roos wrote: > >>>> Also we're trying to move people away from the cciss driver, can you > >>>> check if the hpsa SCSI driver works for you as well? > >>> > >>> I have older adapter: > >>> > >>> Compaq Computer Corporation Smart Array 64xx [0e11:0046] (rev 01) > >>> > >>> That does not seem to be supported by hpsa AFAICS. > >> > >> Looks like. Although hpsa has support for various SA5 controllers > >> it seems like it decided to skip all Compaq branded controllers. > >> > >> As far as I can tell we could simply add support for those to > >> hpsa. Ccing hpsa folks to figure out if that's the case. > > > > Pretty sure Hannes had a patch he tested for that, he talked about > > that back at LSFMM earlier this year. Hannes? > > > Oh, I do. > hpsa is working happily on SLES for _all_ SmartArray controllers. > You need to enable 'hpsa_allow_any=1', though. > But I'm perfectly happy with making that the default and drop cciss > completely. > > Cheers, > > Hannes > -- > Dr. Hannes Reinecke Teamlead Storage & Networking > hare@suse.de +49 911 74053 688 > SUSE LINUX GmbH, Maxfeldstr. 5, 90409 Nürnberg > GF: F. Imendörffer, J. Smithard, J. Guild, D. Upmanyu, G. Norton > HRB 21284 (AG Nürnberg) The 6400 controllers are quite old and are no longer tested. So, it would be nice to deprecate the cciss driver, but we would not support those formerly cciss devices with hpsa. I do not recall seeing a cciss_ioctl issue, what was the issue? Thanks, Don Brace ESC - Smart Storage Microsemi Corporation
> On Fri, Jul 07, 2017 at 11:42:38AM -0400, Laurence Oberman wrote: > > What happens when hpsa_allow_any=1 with the Smart Array 64xx > > It should probe. > > But only if it has a HP vendor ID as far as I can tell. We'd > still need to add the compaq ids so that these controllers get > probed. But maybe it's time to add them and flip the hpsa_allow_any > default (maybe conditionally on a config option?) and mark cciss > deprecated. I added hpsa_allow_any=1, did not help. Added a wildcard Compaq entry with RAID class, like the one for HP, still no go: [ 5.199125] hpsa 0000:00:04.0: unrecognized board ID: 0x40800e11, ignoring. [ 5.282517] hpsa 0000:00:04.0: Board ID not found Added specific PCI ID and subdevice ID quad and I still get the same messages and the adapter is ignored. What am I doing wrong?
So, adding adding hpsa_allow_any=1 did not work... When you added the 0x40800e11, did you add it to both tables? /* define the PCI info for the cards we can control */ static const struct pci_device_id hpsa_pci_device_id[] = { {PCI_VENDOR_ID_COMPAQ, PCI_DEVICE_ID_COMPAQ_CISSB, 0x0E11, 0x4080}, ... {0,} }; /* board_id = Subsystem Device ID & Vendor ID * product = Marketing Name for the board * access = Address of the struct of function pointers */ static struct board_type products[] = { {0x40800E11, "Smart Array 5i", &SA5B_access}, ... }; I added it at the very first entry to make it easier. --- However, there is not a SA5B_access table in hpsa.h. /* * This card is the opposite of the other cards. * 0 turns interrupts on... * 0x04 turns them off... */ static void SA5B_intr_mask(ctlr_info_t *h, unsigned long val) { if (val) { /* Turn interrupts on */ h->interrupts_enabled = 1; writel(0, h->vaddr + SA5_REPLY_INTR_MASK_OFFSET); (void) readl(h->vaddr + SA5_REPLY_INTR_MASK_OFFSET); } else /* Turn them off */ { h->interrupts_enabled = 0; writel( SA5B_INTR_OFF, h->vaddr + SA5_REPLY_INTR_MASK_OFFSET); (void) readl(h->vaddr + SA5_REPLY_INTR_MASK_OFFSET); } } /* * Returns true if an interrupt is pending.. */ static bool SA5B_intr_pending(ctlr_info_t *h) { unsigned long register_value = readl(h->vaddr + SA5_INTR_STATUS); #ifdef CCISS_DEBUG printk("cciss: intr_pending %lx\n", register_value); #endif /* CCISS_DEBUG */ if( register_value & SA5B_INTR_PENDING) return 1; return 0 ; } static struct access_method SA5B_access = { .submit_command = SA5_submit_command, .set_intr_mask = SA5B_intr_mask, .fifo_full = SA5_fifo_full, .intr_pending = SA5B_intr_pending, .command_completed = SA5_completed, }; Can you try adding the two table entries and the SA5B definitions in hpsa.h? > -----Original Message----- > From: mroos@math.ut.ee [mailto:mroos@math.ut.ee] On Behalf Of Meelis > Roos > Sent: Monday, July 10, 2017 9:08 AM > To: Christoph Hellwig <hch@infradead.org> > Cc: Laurence Oberman <loberman@redhat.com>; Jens Axboe > <axboe@kernel.dk>; Linux Kernel list <linux-kernel@vger.kernel.org>; linux- > block@vger.kernel.org; Don Brace <don.brace@microsemi.com>; Scott > Benesh <scott.benesh@microsemi.com>; Scott Teel > <scott.teel@microsemi.com>; Kevin Barnett > <kevin.barnett@microsemi.com>; linux-scsi@vger.kernel.org; Hannes > Reinecke <hare@suse.de> > Subject: Re: device support in hpsa, was: Re: OOPS from cciss_ioctl in 4.12+git > > EXTERNAL EMAIL > > > > On Fri, Jul 07, 2017 at 11:42:38AM -0400, Laurence Oberman wrote: > > > What happens when hpsa_allow_any=1 with the Smart Array 64xx > > > It should probe. > > > > But only if it has a HP vendor ID as far as I can tell. We'd > > still need to add the compaq ids so that these controllers get > > probed. But maybe it's time to add them and flip the hpsa_allow_any > > default (maybe conditionally on a config option?) and mark cciss > > deprecated. > > I added hpsa_allow_any=1, did not help. > > Added a wildcard Compaq entry with RAID class, like the one for HP, > still no go: > > [ 5.199125] hpsa 0000:00:04.0: unrecognized board ID: 0x40800e11, ignoring. > [ 5.282517] hpsa 0000:00:04.0: Board ID not found > > Added specific PCI ID and subdevice ID quad and I still get the same > messages and the adapter is ignored. > > What am I doing wrong? > > -- > Meelis Roos (mroos@linux.ee)
diff --git a/drivers/block/cciss.c b/drivers/block/cciss.c index 02a611993bb4..678af946be30 100644 --- a/drivers/block/cciss.c +++ b/drivers/block/cciss.c @@ -1944,6 +1944,13 @@ static void cciss_get_serial_no(ctlr_info_t *h, int logvol, return; } +static void cciss_initialize_rq(struct request *rq) +{ + struct scsi_request *sreq = blk_mq_rq_to_pdu(rq); + + scsi_req_init(sreq); +} + /* * cciss_add_disk sets up the block device queue for a logical drive */ @@ -1956,6 +1963,7 @@ static int cciss_add_disk(ctlr_info_t *h, struct gendisk *disk, disk->queue->cmd_size = sizeof(struct scsi_request); disk->queue->request_fn = do_cciss_request; + disk->queue->initialize_rq_fn = cciss_initialize_rq; disk->queue->queue_lock = &h->lock; queue_flag_set_unlocked(QUEUE_FLAG_SCSI_PASSTHROUGH, disk->queue); if (blk_init_allocated_queue(disk->queue) < 0)