* [PATCH] aacraid: cleanup and version stamp driver
[not found] <AE4F746F2AECFC4DA4AADD66A1DFEF01400B18@otce2k301.adaptec.com>
@ 2007-03-21 17:49 ` Salyzyn, Mark
2007-03-21 18:49 ` Boaz Harrosh
2007-03-21 19:43 ` [PATCH] aacraid: Add likely() and unlikely() Salyzyn, Mark
0 siblings, 2 replies; 10+ messages in thread
From: Salyzyn, Mark @ 2007-03-21 17:49 UTC (permalink / raw)
To: linux-scsi
[-- Attachment #1: Type: text/plain, Size: 739 bytes --]
There is some residual cleanup of the last series of patches and the
need to bump the revision number to draw the line in the sand.
The cmd->SCp.phase is set in the aac_valid_context routine, then set
again to the same value following it's return. The cmd->scsi_done is set
twice in the aac_queuecommand routine. Free up the scsidev FILO in
aac_probe_container as it is not needed further down the function in any
case. Improve the efficiency of the abort handler kernel print
parameters. Bump revision number of driver to approximate the equivalent
in the Adaptec supplied version.
This attached patch is against current scsi-misc-2.6
Signed-off-by: Mark Salyzyn <aacraid@adaptec.com>
---
Sincerely -- Mark Salyzyn
[-- Attachment #2: aacraid_cleanup_and_version.patch --]
[-- Type: application/octet-stream, Size: 2795 bytes --]
diff -ru a/drivers/scsi/aacraid/aachba.c b/drivers/scsi/aacraid/aachba.c
--- a/drivers/scsi/aacraid/aachba.c 2007-03-21 13:23:19.345260702 -0400
+++ b/drivers/scsi/aacraid/aachba.c 2007-03-21 13:37:32.995408010 -0400
@@ -365,7 +365,6 @@
struct scsi_cmnd * scsicmd;
scsicmd = (struct scsi_cmnd *) context;
- scsicmd->SCp.phase = AAC_OWNER_MIDLEVEL;
if (!aac_valid_context(scsicmd, fibptr))
return;
@@ -629,9 +628,9 @@
if (_aac_probe_container(scsicmd, aac_probe_container_callback1) == 0)
while (scsicmd->device == scsidev)
schedule();
+ kfree(scsidev);
status = scsicmd->SCp.Status;
kfree(scsicmd);
- kfree(scsidev);
return status;
}
@@ -1321,7 +1320,6 @@
u32 cid;
scsicmd = (struct scsi_cmnd *) context;
- scsicmd->SCp.phase = AAC_OWNER_MIDLEVEL;
if (!aac_valid_context(scsicmd, fibptr))
return;
@@ -1571,7 +1569,6 @@
struct scsi_cmnd *cmd;
cmd = context;
- cmd->SCp.phase = AAC_OWNER_MIDLEVEL;
if (!aac_valid_context(cmd, fibptr))
return;
@@ -2127,7 +2124,6 @@
struct scsi_cmnd *scsicmd;
scsicmd = (struct scsi_cmnd *) context;
- scsicmd->SCp.phase = AAC_OWNER_MIDLEVEL;
if (!aac_valid_context(scsicmd, fibptr))
return;
diff -ru a/drivers/scsi/aacraid/aacraid.h b/drivers/scsi/aacraid/aacraid.h
--- a/drivers/scsi/aacraid/aacraid.h 2007-03-21 13:23:19.346260576 -0400
+++ b/drivers/scsi/aacraid/aacraid.h 2007-03-21 13:38:04.094421971 -0400
@@ -12,8 +12,8 @@
*----------------------------------------------------------------------------*/
#ifndef AAC_DRIVER_BUILD
-# define AAC_DRIVER_BUILD 2423
-# define AAC_DRIVER_BRANCH "-mh3"
+# define AAC_DRIVER_BUILD 2437
+# define AAC_DRIVER_BRANCH "-mh4"
#endif
#define MAXIMUM_NUM_CONTAINERS 32
diff -ru a/drivers/scsi/aacraid/linit.c b/drivers/scsi/aacraid/linit.c
--- a/drivers/scsi/aacraid/linit.c 2007-03-21 13:23:19.347260450 -0400
+++ b/drivers/scsi/aacraid/linit.c 2007-03-21 13:38:04.095421842 -0400
@@ -260,7 +260,6 @@
(cmd->SCp.phase == AAC_OWNER_FIRMWARE))
return 0; /* Already owned by Adapter */
}
- cmd->scsi_done = done;
cmd->SCp.phase = AAC_OWNER_LOWLEVEL;
return (aac_scsi_cmd(cmd) ? FAILED : 0);
}
@@ -461,15 +460,15 @@
static int aac_eh_abort(struct scsi_cmnd* cmd)
{
- struct Scsi_Host * host = cmd->device->host;
+ struct scsi_device * dev = cmd->device;
+ struct Scsi_Host * host = dev->host;
struct aac_dev * aac = (struct aac_dev *)host->hostdata;
int count;
int ret = FAILED;
printk(KERN_ERR "%s: Host adapter abort request (%d,%d,%d,%d)\n",
AAC_DRIVERNAME,
- cmd->device->host->host_no, sdev_channel(cmd->device),
- sdev_id(cmd->device), cmd->device->lun);
+ host->host_no, sdev_channel(dev), sdev_id(dev), dev->lun);
switch (cmd->cmnd[0]) {
case SERVICE_ACTION_IN:
if (!(aac->raw_io_interface) ||
^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: [PATCH] aacraid: cleanup and version stamp driver
2007-03-21 17:49 ` [PATCH] aacraid: cleanup and version stamp driver Salyzyn, Mark
@ 2007-03-21 18:49 ` Boaz Harrosh
2007-03-21 19:10 ` Salyzyn, Mark
2007-03-21 19:43 ` [PATCH] aacraid: Add likely() and unlikely() Salyzyn, Mark
1 sibling, 1 reply; 10+ messages in thread
From: Boaz Harrosh @ 2007-03-21 18:49 UTC (permalink / raw)
To: Salyzyn, Mark; +Cc: linux-scsi
Salyzyn, Mark wrote:
> There is some residual cleanup of the last series of patches and the
> need to bump the revision number to draw the line in the sand.
>
> The cmd->SCp.phase is set in the aac_valid_context routine, then set
> again to the same value following it's return. The cmd->scsi_done is set
> twice in the aac_queuecommand routine. Free up the scsidev FILO in
> aac_probe_container as it is not needed further down the function in any
> case. Improve the efficiency of the abort handler kernel print
> parameters. Bump revision number of driver to approximate the equivalent
> in the Adaptec supplied version.
>
> This attached patch is against current scsi-misc-2.6
>
> Signed-off-by: Mark Salyzyn <aacraid@adaptec.com>
>
> ---
>
> Sincerely -- Mark Salyzyn
looking in mail source
> This attached patch is against current scsi-misc-2.6
>
> Signed-off-by: Mark Salyzyn <aacraid@adaptec.com>
>
> ---
>
> Sincerely -- Mark Salyzyn
>
> ------_=_NextPart_001_01C76BE1.51493AEC
> Content-Type: application/octet-stream;
> name="aacraid_cleanup_and_version.patch"
> Content-Transfer-Encoding: base64
> Content-Description: aacraid_cleanup_and_version.patch
> Content-Disposition: attachment;
> filename="aacraid_cleanup_and_version.patch"
>
> ZGlmZiAtcnUgYS9kcml2ZXJzL3Njc2kvYWFjcmFpZC9hYWNoYmEuYyBiL2RyaXZlcnMvc2NzaS9h
> YWNyYWlkL2FhY2hiYS5jCi0tLSBhL2RyaXZlcnMvc2NzaS9hYWNyYWlkL2FhY2hiYS5jCTIwMDct
> MDMtMjEgMTM6MjM6MTkuMzQ1MjYwNzAyIC0wNDAwCisrKyBiL2RyaXZlcnMvc2NzaS9hYWNyYWlk
> L2FhY2hiYS5jCTIwMDctMDMtMjEgMTM6Mzc6MzIuOTk1NDA4MDEwIC0wNDAwCkBAIC0zNjUsNyAr
> MzY1LDYgQEAKIAlzdHJ1Y3Qgc2NzaV9jbW5kICogc2NzaWNtZDsKIAogCXNjc2ljbWQgPSAoc3Ry
why is the text attachment marked "Content-Type: application/octet-stream"
and encoded? attachments are OK but why not plain text?
Boaz
^ permalink raw reply [flat|nested] 10+ messages in thread
* RE: [PATCH] aacraid: cleanup and version stamp driver
2007-03-21 18:49 ` Boaz Harrosh
@ 2007-03-21 19:10 ` Salyzyn, Mark
0 siblings, 0 replies; 10+ messages in thread
From: Salyzyn, Mark @ 2007-03-21 19:10 UTC (permalink / raw)
To: Boaz Harrosh; +Cc: linux-scsi
Because Adaptec Policy requires me to send all email through Outlook ...
Outlook has demonstrated that it will change text, either as inlined or
as an attachment, into something that is not a functional patch. Years
of sending patches to Mark Haverkamp have tuned me to send them this way
to ensure accuracy of delivery. I understand that my procedures may need
to be changed, waivers requested perhaps, as I issue the patches
directly to the list now that OSDL has had to deal with reductions in
finances and force and I will take your comment to heart.
Sorry for any inconvenience when trying to view the content of the
patch.
Sincerely -- Mark Salyzyn
> -----Original Message-----
> From: Boaz Harrosh [mailto:bharrosh@panasas.com]
> Sent: Wednesday, March 21, 2007 2:50 PM
> To: Salyzyn, Mark
> Cc: linux-scsi
> Subject: Re: [PATCH] aacraid: cleanup and version stamp driver
>
>
> Salyzyn, Mark wrote:
> > There is some residual cleanup of the last series of patches and the
> > need to bump the revision number to draw the line in the sand.
> >
> > The cmd->SCp.phase is set in the aac_valid_context routine, then set
> > again to the same value following it's return. The
> cmd->scsi_done is set
> > twice in the aac_queuecommand routine. Free up the scsidev FILO in
> > aac_probe_container as it is not needed further down the
> function in any
> > case. Improve the efficiency of the abort handler kernel print
> > parameters. Bump revision number of driver to approximate
> the equivalent
> > in the Adaptec supplied version.
> >
> > This attached patch is against current scsi-misc-2.6
> >
> > Signed-off-by: Mark Salyzyn <aacraid@adaptec.com>
> >
> > ---
> >
> > Sincerely -- Mark Salyzyn
>
> looking in mail source
>
> > This attached patch is against current scsi-misc-2.6
> >
> > Signed-off-by: Mark Salyzyn <aacraid@adaptec.com>
> >
> > ---
> >
> > Sincerely -- Mark Salyzyn
> >
> > ------_=_NextPart_001_01C76BE1.51493AEC
> > Content-Type: application/octet-stream;
> > name="aacraid_cleanup_and_version.patch"
> > Content-Transfer-Encoding: base64
> > Content-Description: aacraid_cleanup_and_version.patch
> > Content-Disposition: attachment;
> > filename="aacraid_cleanup_and_version.patch"
> >
> >
> ZGlmZiAtcnUgYS9kcml2ZXJzL3Njc2kvYWFjcmFpZC9hYWNoYmEuYyBiL2RyaX
> ZlcnMvc2NzaS9h
> >
> YWNyYWlkL2FhY2hiYS5jCi0tLSBhL2RyaXZlcnMvc2NzaS9hYWNyYWlkL2FhY2
> hiYS5jCTIwMDct
> >
> MDMtMjEgMTM6MjM6MTkuMzQ1MjYwNzAyIC0wNDAwCisrKyBiL2RyaXZlcnMvc2
> NzaS9hYWNyYWlk
> >
> L2FhY2hiYS5jCTIwMDctMDMtMjEgMTM6Mzc6MzIuOTk1NDA4MDEwIC0wNDAwCk
> BAIC0zNjUsNyAr
> >
> MzY1LDYgQEAKIAlzdHJ1Y3Qgc2NzaV9jbW5kICogc2NzaWNtZDsKIAogCXNjc2
> ljbWQgPSAoc3Ry
>
> why is the text attachment marked "Content-Type:
> application/octet-stream"
> and encoded? attachments are OK but why not plain text?
>
> Boaz
>
>
>
^ permalink raw reply [flat|nested] 10+ messages in thread
* [PATCH] aacraid: Add likely() and unlikely()
2007-03-21 17:49 ` [PATCH] aacraid: cleanup and version stamp driver Salyzyn, Mark
2007-03-21 18:49 ` Boaz Harrosh
@ 2007-03-21 19:43 ` Salyzyn, Mark
2007-03-22 9:24 ` Arjan van de Ven
1 sibling, 1 reply; 10+ messages in thread
From: Salyzyn, Mark @ 2007-03-21 19:43 UTC (permalink / raw)
To: linux-scsi
[-- Attachment #1: Type: text/plain, Size: 483 bytes --]
Add some likely() and unlikely() compiler hints in some of the aacraid
hardware interface layers. There should be no operational side effects
resulting from this patch and the changes should be mostly benign on x86
platforms.
ObligatoryDisclaimer: Please accept my condolences regarding Outlook's
handling of patches attachments.
This attached patch is against current scsi-misc-2.6
Signed-off-by: Mark Salyzyn <aacraid@adaptec.com>
---
Sincerely -- Mark Salyzyn
[-- Attachment #2: aacraid_likely_unlikely.patch --]
[-- Type: application/octet-stream, Size: 8177 bytes --]
diff -ru a//drivers/scsi/aacraid/commsup.c b//drivers/scsi/aacraid/commsup.c
--- a//drivers/scsi/aacraid/commsup.c 2007-03-21 15:15:59.470057770 -0400
+++ b//drivers/scsi/aacraid/commsup.c 2007-03-21 15:32:21.779160958 -0400
@@ -519,7 +519,7 @@
spin_unlock_irqrestore(&fibptr->event_lock, flags);
BUG_ON(fibptr->done == 0);
- if((fibptr->flags & FIB_CONTEXT_FLAG_TIMED_OUT)){
+ if(unlikely(fibptr->flags & FIB_CONTEXT_FLAG_TIMED_OUT)){
return -ETIMEDOUT;
} else {
return 0;
diff -ru a//drivers/scsi/aacraid/rx.c b//drivers/scsi/aacraid/rx.c
--- a//drivers/scsi/aacraid/rx.c 2007-03-21 15:15:59.472057518 -0400
+++ b//drivers/scsi/aacraid/rx.c 2007-03-21 15:32:21.780160831 -0400
@@ -5,7 +5,7 @@
* based on the old aacraid driver that is..
* Adaptec aacraid device driver for Linux.
*
- * Copyright (c) 2000 Adaptec, Inc. (aacraid@adaptec.com)
+ * Copyright (c) 2000-2007 Adaptec, Inc. (aacraid@adaptec.com)
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
@@ -57,25 +57,25 @@
* been enabled.
* Check to see if this is our interrupt. If it isn't just return
*/
- if (intstat & ~(dev->OIMR)) {
+ if (likely(intstat & ~(dev->OIMR))) {
bellbits = rx_readl(dev, OutboundDoorbellReg);
- if (bellbits & DoorBellPrintfReady) {
+ if (unlikely(bellbits & DoorBellPrintfReady)) {
aac_printf(dev, readl (&dev->IndexRegs->Mailbox[5]));
rx_writel(dev, MUnit.ODR,DoorBellPrintfReady);
rx_writel(dev, InboundDoorbellReg,DoorBellPrintfDone);
}
- else if (bellbits & DoorBellAdapterNormCmdReady) {
+ else if (unlikely(bellbits & DoorBellAdapterNormCmdReady)) {
rx_writel(dev, MUnit.ODR, DoorBellAdapterNormCmdReady);
aac_command_normal(&dev->queues->queue[HostNormCmdQueue]);
}
- else if (bellbits & DoorBellAdapterNormRespReady) {
+ else if (likely(bellbits & DoorBellAdapterNormRespReady)) {
rx_writel(dev, MUnit.ODR,DoorBellAdapterNormRespReady);
aac_response_normal(&dev->queues->queue[HostNormRespQueue]);
}
- else if (bellbits & DoorBellAdapterNormCmdNotFull) {
+ else if (unlikely(bellbits & DoorBellAdapterNormCmdNotFull)) {
rx_writel(dev, MUnit.ODR, DoorBellAdapterNormCmdNotFull);
}
- else if (bellbits & DoorBellAdapterNormRespNotFull) {
+ else if (unlikely(bellbits & DoorBellAdapterNormRespNotFull)) {
rx_writel(dev, MUnit.ODR, DoorBellAdapterNormCmdNotFull);
rx_writel(dev, MUnit.ODR, DoorBellAdapterNormRespNotFull);
}
@@ -88,11 +88,11 @@
{
struct aac_dev *dev = dev_id;
u32 Index = rx_readl(dev, MUnit.OutboundQueue);
- if (Index == 0xFFFFFFFFL)
+ if (unlikely(Index == 0xFFFFFFFFL))
Index = rx_readl(dev, MUnit.OutboundQueue);
- if (Index != 0xFFFFFFFFL) {
+ if (likely(Index != 0xFFFFFFFFL)) {
do {
- if (aac_intr_normal(dev, Index)) {
+ if (unlikely(aac_intr_normal(dev, Index))) {
rx_writel(dev, MUnit.OutboundQueue, Index);
rx_writel(dev, MUnit.ODR, DoorBellAdapterNormRespReady);
}
@@ -204,7 +204,7 @@
*/
msleep(1);
}
- if (ok != 1) {
+ if (unlikely(ok != 1)) {
/*
* Restore interrupt mask even though we timed out
*/
@@ -214,15 +214,15 @@
/*
* Pull the synch status from Mailbox 0.
*/
- if (status)
+ if (likely(status != NULL))
*status = readl(&dev->IndexRegs->Mailbox[0]);
- if (r1)
+ if (likely(r1 != NULL))
*r1 = readl(&dev->IndexRegs->Mailbox[1]);
- if (r2)
+ if (likely(r2 != NULL))
*r2 = readl(&dev->IndexRegs->Mailbox[2]);
- if (r3)
+ if (likely(r3 != NULL))
*r3 = readl(&dev->IndexRegs->Mailbox[3]);
- if (r4)
+ if (likely(r4 != NULL))
*r4 = readl(&dev->IndexRegs->Mailbox[4]);
/*
* Clear the synch command doorbell.
@@ -319,12 +319,12 @@
/*
* Check to see if the board failed any self tests.
*/
- if (status & SELF_TEST_FAILED)
+ if (unlikely(status & SELF_TEST_FAILED))
return -1;
/*
* Check to see if the board panic'd.
*/
- if (status & KERNEL_PANIC) {
+ if (unlikely(status & KERNEL_PANIC)) {
char * buffer;
struct POSTSTATUS {
__le32 Post_Command;
@@ -333,15 +333,15 @@
dma_addr_t paddr, baddr;
int ret;
- if ((status & 0xFF000000L) == 0xBC000000L)
+ if (likely((status & 0xFF000000L) == 0xBC000000L))
return (status >> 16) & 0xFF;
buffer = pci_alloc_consistent(dev->pdev, 512, &baddr);
ret = -2;
- if (buffer == NULL)
+ if (unlikely(buffer == NULL))
return ret;
post = pci_alloc_consistent(dev->pdev,
sizeof(struct POSTSTATUS), &paddr);
- if (post == NULL) {
+ if (unlikely(post == NULL)) {
pci_free_consistent(dev->pdev, 512, buffer, baddr);
return ret;
}
@@ -353,7 +353,7 @@
NULL, NULL, NULL, NULL, NULL);
pci_free_consistent(dev->pdev, sizeof(struct POSTSTATUS),
post, paddr);
- if ((buffer[0] == '0') && ((buffer[1] == 'x') || (buffer[1] == 'X'))) {
+ if (likely((buffer[0] == '0') && ((buffer[1] == 'x') || (buffer[1] == 'X')))) {
ret = (buffer[2] <= '9') ? (buffer[2] - '0') : (buffer[2] - 'A' + 10);
ret <<= 4;
ret += (buffer[3] <= '9') ? (buffer[3] - '0') : (buffer[3] - 'A' + 10);
@@ -364,7 +364,7 @@
/*
* Wait for the adapter to be up and running.
*/
- if (!(status & KERNEL_UP_AND_RUNNING))
+ if (unlikely(!(status & KERNEL_UP_AND_RUNNING)))
return -3;
/*
* Everything is OK
@@ -419,9 +419,9 @@
spin_unlock_irqrestore(q->lock, qflags);
for(;;) {
Index = rx_readl(dev, MUnit.InboundQueue);
- if (Index == 0xFFFFFFFFL)
+ if (unlikely(Index == 0xFFFFFFFFL))
Index = rx_readl(dev, MUnit.InboundQueue);
- if (Index != 0xFFFFFFFFL)
+ if (likely(Index != 0xFFFFFFFFL))
break;
if (--count == 0) {
spin_lock_irqsave(q->lock, qflags);
@@ -454,7 +454,7 @@
return 0;
}
dev->base = dev->regs.rx = ioremap(dev->scsi_host_ptr->base, size);
- if (dev->base == NULL)
+ if (unlikely(dev->base == NULL))
return -1;
dev->IndexRegs = &dev->regs.rx->IndexRegs;
return 0;
@@ -526,13 +526,10 @@
{
unsigned long start;
unsigned long status;
- int instance;
- const char * name;
+ int instance = dev->id;
+ const char * name = dev->name;
- instance = dev->id;
- name = dev->name;
-
- if (aac_adapter_ioremap(dev, dev->base_size)) {
+ if (unlikely(aac_adapter_ioremap(dev, dev->base_size))) {
printk(KERN_WARNING "%s: unable to map adapter.\n", name);
goto error_iounmap;
}
@@ -541,7 +538,7 @@
* Check to see if the board panic'd while booting.
*/
status = rx_readl(dev, MUnit.OMRx[0]);
- if (status & KERNEL_PANIC) {
+ if (unlikely(status & KERNEL_PANIC)) {
if ((status = aac_rx_check_health(dev)) <= 0)
goto error_iounmap;
if (aac_rx_restart_adapter(dev, status))
@@ -551,14 +548,14 @@
* Check to see if the board failed any self tests.
*/
status = rx_readl(dev, MUnit.OMRx[0]);
- if (status & SELF_TEST_FAILED) {
+ if (unlikely(status & SELF_TEST_FAILED)) {
printk(KERN_ERR "%s%d: adapter self-test failed.\n", dev->name, instance);
goto error_iounmap;
}
/*
* Check to see if the monitor panic'd while booting.
*/
- if (status & MONITOR_PANIC) {
+ if (unlikely(status & MONITOR_PANIC)) {
printk(KERN_ERR "%s%d: adapter monitor panic.\n", dev->name, instance);
goto error_iounmap;
}
@@ -568,8 +565,7 @@
*/
while (!((status = rx_readl(dev, MUnit.OMRx[0])) & KERNEL_UP_AND_RUNNING))
{
- if(time_after(jiffies, start+startup_timeout*HZ))
- {
+ if(unlikely(time_after(jiffies, start+startup_timeout*HZ))) {
printk(KERN_ERR "%s%d: adapter kernel failed to start, init status = %lx.\n",
dev->name, instance, status);
goto error_iounmap;
@@ -595,11 +591,11 @@
rx_writel(dev, MUnit.ODR, 0xffffffff);
aac_adapter_enable_int(dev);
- if (aac_init_adapter(dev) == NULL)
+ if (unlikely(aac_init_adapter(dev) == NULL))
goto error_iounmap;
aac_adapter_comm(dev, dev->comm_interface);
- if (request_irq(dev->scsi_host_ptr->irq, dev->a_ops.adapter_intr,
- IRQF_SHARED|IRQF_DISABLED, "aacraid", dev) < 0) {
+ if (unlikely(request_irq(dev->scsi_host_ptr->irq, dev->a_ops.adapter_intr,
+ IRQF_SHARED|IRQF_DISABLED, "aacraid", dev) < 0)) {
printk(KERN_ERR "%s%d: Interrupt unavailable.\n",
name, instance);
goto error_iounmap;
^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: [PATCH] aacraid: Add likely() and unlikely()
2007-03-21 19:43 ` [PATCH] aacraid: Add likely() and unlikely() Salyzyn, Mark
@ 2007-03-22 9:24 ` Arjan van de Ven
2007-03-26 13:21 ` [PATCH] aacraid: Add likely() and unlikely() Take 2 Salyzyn, Mark
0 siblings, 1 reply; 10+ messages in thread
From: Arjan van de Ven @ 2007-03-22 9:24 UTC (permalink / raw)
To: Salyzyn, Mark; +Cc: linux-scsi
On Wed, 2007-03-21 at 15:43 -0400, Salyzyn, Mark wrote:
> Add some likely() and unlikely() compiler hints in some of the aacraid
> hardware interface layers. There should be no operational side effects
> resulting from this patch and the changes should be mostly benign on x86
> platforms.
>
> ObligatoryDisclaimer: Please accept my condolences regarding Outlook's
> handling of patches attachments.
>
> This attached patch is against current scsi-misc-2.6
- if((fibptr->flags & FIB_CONTEXT_FLAG_TIMED_OUT)){
+ if(unlikely(fibptr->flags & FIB_CONTEXT_FLAG_TIMED_OUT)){
return -ETIMEDOUT;
} else {
return 0;
while you're at it, please remove the extra {}'s as well
(I assume you're aware that likely/unlikely should only be used for 99:1
or higher ratios, this one looks correct for sure)
Also I suggest you don't add about half of these; they appear init time
only code, at which point adding likely/unlikely is just code noise that
clutters the driver...
--
if you want to mail me at work (you don't), use arjan (at) linux.intel.com
Test the interaction between Linux and your BIOS via http://www.linuxfirmwarekit.org
^ permalink raw reply [flat|nested] 10+ messages in thread
* [PATCH] aacraid: Add likely() and unlikely() Take 2
2007-03-22 9:24 ` Arjan van de Ven
@ 2007-03-26 13:21 ` Salyzyn, Mark
2007-03-27 15:51 ` [PATCH] aacraid: Add SMC and SUN products to README Salyzyn, Mark
0 siblings, 1 reply; 10+ messages in thread
From: Salyzyn, Mark @ 2007-03-26 13:21 UTC (permalink / raw)
To: linux-scsi; +Cc: Arjan van de Ven
[-- Attachment #1: Type: text/plain, Size: 1619 bytes --]
Thanks Arjan for the comments, much appreciated. I have removed the
superfluous braces and limited the usage of the likely and unlikely to
runtime code. Sorry for the delay, took a four day vacation ...
Add some likely() and unlikely() compiler hints in some of the aacraid
hardware interface layers. There should be no operational side effects
resulting from this patch and the changes should be mostly benign on x86
platforms.
ObligatoryDisclaimer: Please accept my condolences regarding Outlook's
handling of patches attachments.
This attached patch is against current scsi-misc-2.6
Signed-off-by: Mark Salyzyn <aacraid@adaptec.com>
---
Sincerely -- Mark Salyzyn
> -----Original Message-----
> From: Arjan van de Ven [mailto:arjan@infradead.org]
> Sent: Thursday, March 22, 2007 5:24 AM
> To: Salyzyn, Mark
> Cc: linux-scsi
> Subject: Re: [PATCH] aacraid: Add likely() and unlikely()
>
> On Wed, 2007-03-21 at 15:43 -0400, Salyzyn, Mark wrote:
>
> - if((fibptr->flags & FIB_CONTEXT_FLAG_TIMED_OUT)){
> + if(unlikely(fibptr->flags &
FIB_CONTEXT_FLAG_TIMED_OUT)){
> return -ETIMEDOUT;
> } else {
> return 0;
>
> while you're at it, please remove the extra {}'s as well
>
> (I assume you're aware that likely/unlikely should only be used for
99:1 or higher ratios, this one looks correct for sure)
>
> Also I suggest you don't add about half of these; they appear init
time only code, at which point adding likely/unlikely is just code noise
that clutters the driver...
[-- Attachment #2: aacraid_likely_unlikely_2.patch --]
[-- Type: application/octet-stream, Size: 5934 bytes --]
diff -ru a/drivers/scsi/aacraid/commsup.c b/drivers/scsi/aacraid/commsup.c
--- a/drivers/scsi/aacraid/commsup.c 2007-03-26 09:06:32.073857134 -0400
+++ b/drivers/scsi/aacraid/commsup.c 2007-03-26 09:09:43.453622817 -0400
@@ -519,11 +519,9 @@
spin_unlock_irqrestore(&fibptr->event_lock, flags);
BUG_ON(fibptr->done == 0);
- if((fibptr->flags & FIB_CONTEXT_FLAG_TIMED_OUT)){
+ if(unlikely(fibptr->flags & FIB_CONTEXT_FLAG_TIMED_OUT))
return -ETIMEDOUT;
- } else {
- return 0;
- }
+ return 0;
}
/*
* If the user does not want a response than return success otherwise
diff -ru a/drivers/scsi/aacraid/rx.c b/drivers/scsi/aacraid/rx.c
--- a/drivers/scsi/aacraid/rx.c 2007-03-26 09:06:33.807636560 -0400
+++ b/drivers/scsi/aacraid/rx.c 2007-03-26 09:13:34.528425867 -0400
@@ -5,7 +5,7 @@
* based on the old aacraid driver that is..
* Adaptec aacraid device driver for Linux.
*
- * Copyright (c) 2000 Adaptec, Inc. (aacraid@adaptec.com)
+ * Copyright (c) 2000-2007 Adaptec, Inc. (aacraid@adaptec.com)
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
@@ -57,25 +57,25 @@
* been enabled.
* Check to see if this is our interrupt. If it isn't just return
*/
- if (intstat & ~(dev->OIMR)) {
+ if (likely(intstat & ~(dev->OIMR))) {
bellbits = rx_readl(dev, OutboundDoorbellReg);
- if (bellbits & DoorBellPrintfReady) {
+ if (unlikely(bellbits & DoorBellPrintfReady)) {
aac_printf(dev, readl (&dev->IndexRegs->Mailbox[5]));
rx_writel(dev, MUnit.ODR,DoorBellPrintfReady);
rx_writel(dev, InboundDoorbellReg,DoorBellPrintfDone);
}
- else if (bellbits & DoorBellAdapterNormCmdReady) {
+ else if (unlikely(bellbits & DoorBellAdapterNormCmdReady)) {
rx_writel(dev, MUnit.ODR, DoorBellAdapterNormCmdReady);
aac_command_normal(&dev->queues->queue[HostNormCmdQueue]);
}
- else if (bellbits & DoorBellAdapterNormRespReady) {
+ else if (likely(bellbits & DoorBellAdapterNormRespReady)) {
rx_writel(dev, MUnit.ODR,DoorBellAdapterNormRespReady);
aac_response_normal(&dev->queues->queue[HostNormRespQueue]);
}
- else if (bellbits & DoorBellAdapterNormCmdNotFull) {
+ else if (unlikely(bellbits & DoorBellAdapterNormCmdNotFull)) {
rx_writel(dev, MUnit.ODR, DoorBellAdapterNormCmdNotFull);
}
- else if (bellbits & DoorBellAdapterNormRespNotFull) {
+ else if (unlikely(bellbits & DoorBellAdapterNormRespNotFull)) {
rx_writel(dev, MUnit.ODR, DoorBellAdapterNormCmdNotFull);
rx_writel(dev, MUnit.ODR, DoorBellAdapterNormRespNotFull);
}
@@ -88,11 +88,11 @@
{
struct aac_dev *dev = dev_id;
u32 Index = rx_readl(dev, MUnit.OutboundQueue);
- if (Index == 0xFFFFFFFFL)
+ if (unlikely(Index == 0xFFFFFFFFL))
Index = rx_readl(dev, MUnit.OutboundQueue);
- if (Index != 0xFFFFFFFFL) {
+ if (likely(Index != 0xFFFFFFFFL)) {
do {
- if (aac_intr_normal(dev, Index)) {
+ if (unlikely(aac_intr_normal(dev, Index))) {
rx_writel(dev, MUnit.OutboundQueue, Index);
rx_writel(dev, MUnit.ODR, DoorBellAdapterNormRespReady);
}
@@ -204,7 +204,7 @@
*/
msleep(1);
}
- if (ok != 1) {
+ if (unlikely(ok != 1)) {
/*
* Restore interrupt mask even though we timed out
*/
@@ -319,12 +319,12 @@
/*
* Check to see if the board failed any self tests.
*/
- if (status & SELF_TEST_FAILED)
+ if (unlikely(status & SELF_TEST_FAILED))
return -1;
/*
* Check to see if the board panic'd.
*/
- if (status & KERNEL_PANIC) {
+ if (unlikely(status & KERNEL_PANIC)) {
char * buffer;
struct POSTSTATUS {
__le32 Post_Command;
@@ -333,15 +333,15 @@
dma_addr_t paddr, baddr;
int ret;
- if ((status & 0xFF000000L) == 0xBC000000L)
+ if (likely((status & 0xFF000000L) == 0xBC000000L))
return (status >> 16) & 0xFF;
buffer = pci_alloc_consistent(dev->pdev, 512, &baddr);
ret = -2;
- if (buffer == NULL)
+ if (unlikely(buffer == NULL))
return ret;
post = pci_alloc_consistent(dev->pdev,
sizeof(struct POSTSTATUS), &paddr);
- if (post == NULL) {
+ if (unlikely(post == NULL)) {
pci_free_consistent(dev->pdev, 512, buffer, baddr);
return ret;
}
@@ -353,7 +353,7 @@
NULL, NULL, NULL, NULL, NULL);
pci_free_consistent(dev->pdev, sizeof(struct POSTSTATUS),
post, paddr);
- if ((buffer[0] == '0') && ((buffer[1] == 'x') || (buffer[1] == 'X'))) {
+ if (likely((buffer[0] == '0') && ((buffer[1] == 'x') || (buffer[1] == 'X')))) {
ret = (buffer[2] <= '9') ? (buffer[2] - '0') : (buffer[2] - 'A' + 10);
ret <<= 4;
ret += (buffer[3] <= '9') ? (buffer[3] - '0') : (buffer[3] - 'A' + 10);
@@ -364,7 +364,7 @@
/*
* Wait for the adapter to be up and running.
*/
- if (!(status & KERNEL_UP_AND_RUNNING))
+ if (unlikely(!(status & KERNEL_UP_AND_RUNNING)))
return -3;
/*
* Everything is OK
@@ -419,9 +419,9 @@
spin_unlock_irqrestore(q->lock, qflags);
for(;;) {
Index = rx_readl(dev, MUnit.InboundQueue);
- if (Index == 0xFFFFFFFFL)
+ if (unlikely(Index == 0xFFFFFFFFL))
Index = rx_readl(dev, MUnit.InboundQueue);
- if (Index != 0xFFFFFFFFL)
+ if (likely(Index != 0xFFFFFFFFL))
break;
if (--count == 0) {
spin_lock_irqsave(q->lock, qflags);
@@ -526,11 +526,8 @@
{
unsigned long start;
unsigned long status;
- int instance;
- const char * name;
-
- instance = dev->id;
- name = dev->name;
+ int instance = dev->id;
+ const char * name = dev->name;
if (aac_adapter_ioremap(dev, dev->base_size)) {
printk(KERN_WARNING "%s: unable to map adapter.\n", name);
@@ -568,8 +565,7 @@
*/
while (!((status = rx_readl(dev, MUnit.OMRx[0])) & KERNEL_UP_AND_RUNNING))
{
- if(time_after(jiffies, start+startup_timeout*HZ))
- {
+ if(time_after(jiffies, start+startup_timeout*HZ)) {
printk(KERN_ERR "%s%d: adapter kernel failed to start, init status = %lx.\n",
dev->name, instance, status);
goto error_iounmap;
^ permalink raw reply [flat|nested] 10+ messages in thread
* [PATCH] aacraid: Add SMC and SUN products to README
2007-03-26 13:21 ` [PATCH] aacraid: Add likely() and unlikely() Take 2 Salyzyn, Mark
@ 2007-03-27 15:51 ` Salyzyn, Mark
2007-03-27 19:07 ` [PATCH] aacraid: resolve compiler warnings using ptrdiff_t Salyzyn, Mark
0 siblings, 1 reply; 10+ messages in thread
From: Salyzyn, Mark @ 2007-03-27 15:51 UTC (permalink / raw)
To: linux-scsi
[-- Attachment #1: Type: text/plain, Size: 304 bytes --]
Add SMC and SUN products to aacraid documentation
ObligatoryDisclaimer: Please accept my condolences regarding Outlook's
handling of patches attachments.
This attached patch is against current scsi-misc-2.6
Signed-off-by: Mark Salyzyn <aacraid@adaptec.com>
---
Sincerely -- Mark Salyzyn
[-- Attachment #2: aacraid_SUN_SMC_documentation.patch --]
[-- Type: application/octet-stream, Size: 1106 bytes --]
diff -ru a/Documentation/scsi/aacraid.txt b/Documentation/scsi/aacraid.txt
--- a/Documentation/scsi/aacraid.txt 2007-03-27 11:35:23.587692508 -0400
+++ b/Documentation/scsi/aacraid.txt 2007-03-27 11:46:46.793782677 -0400
@@ -37,7 +37,11 @@
9005:0286:9005:029d Adaptec 2420SA (Intruder HP release)
9005:0286:9005:02ac Adaptec 1800 (Typhoon44)
9005:0285:9005:02b5 Adaptec 5445 (Voodoo44)
+ 9005:0285:15d9:02b5 SMC AOC-USAS-S4i
+ 9005:0285:15d9:02c9 SMC AOC-USAS-S4iB
9005:0285:9005:02b6 Adaptec 5805 (Voodoo80)
+ 9005:0285:15d9:02b6 SMC AOC-USAS-S8i
+ 9005:0285:15d9:02ca SMC AOC-USAS-S8iB
9005:0285:9005:02b7 Adaptec 5085 (Voodoo08)
9005:0285:9005:02bb Adaptec 3405 (Marauder40LP)
9005:0285:9005:02bc Adaptec 3805 (Marauder80LP)
@@ -93,6 +97,9 @@
9005:0286:9005:02ae (Aurora Lite ARK)
9005:0285:9005:02b0 (Sunrise Lake ARK)
9005:0285:9005:02b1 Adaptec (Voodoo 8 internal 8 external)
+ 9005:0285:108e:7aac SUN STK RAID REM (Voodoo44 Coyote)
+ 9005:0285:108e:0286 SUN SG-XPCIESAS-R-IN (Cougar)
+ 9005:0285:108e:0287 SUN SG-XPCIESAS-R-EX (Prometheus)
People
-------------------------
^ permalink raw reply [flat|nested] 10+ messages in thread
* [PATCH] aacraid: resolve compiler warnings using ptrdiff_t
2007-03-27 15:51 ` [PATCH] aacraid: Add SMC and SUN products to README Salyzyn, Mark
@ 2007-03-27 19:07 ` Salyzyn, Mark
2007-03-28 13:22 ` [PATCH] aacraid: remove unused or deprecated firmware constants Salyzyn, Mark
0 siblings, 1 reply; 10+ messages in thread
From: Salyzyn, Mark @ 2007-03-27 19:07 UTC (permalink / raw)
To: linux-scsi
[-- Attachment #1: Type: text/plain, Size: 521 bytes --]
Unsigned long is not always the same size as a pointer, namely on 32 bit
systems with 64 bit address space. Ptrdiff_t is the same size as a
pointer in all configurations. By using ptrdiff_t we can mitigate the
warning messages on these configurations. There should be no side
effects of this patch.
ObligatoryDisclaimer: Please accept my condolences regarding Outlook's
handling of patches attachments.
This attached patch is against current scsi-misc-2.6
Signed-off-by: Mark Salyzyn <aacraid@adaptec.com>
[-- Attachment #2: aacraid_ptrdiff.patch --]
[-- Type: application/octet-stream, Size: 2073 bytes --]
diff -ru a/drivers/scsi/aacraid/commctrl.c b/drivers/scsi/aacraid/commctrl.c
--- a/drivers/scsi/aacraid/commctrl.c 2007-03-27 14:51:11.670124719 -0400
+++ b/drivers/scsi/aacraid/commctrl.c 2007-03-27 15:00:53.286882719 -0400
@@ -391,10 +391,8 @@
/*
* Extract the fibctx from the input parameters
*/
- if (fibctx->unique == (u32)(unsigned long)arg) {
- /* We found a winner */
+ if (fibctx->unique == (u32)(ptrdiff_t)arg) /* We found a winner */
break;
- }
entry = entry->next;
fibctx = NULL;
}
Only in b: commctrl.c.orig
diff -ru a/drivers/scsi/aacraid/comminit.c b/drivers/scsi/aacraid/comminit.c
--- a/drivers/scsi/aacraid/comminit.c 2007-03-27 14:51:11.670124719 -0400
+++ b/drivers/scsi/aacraid/comminit.c 2007-03-27 14:59:35.019740844 -0400
@@ -5,7 +5,7 @@
* based on the old aacraid driver that is..
* Adaptec aacraid device driver for Linux.
*
- * Copyright (c) 2000 Adaptec, Inc. (aacraid@adaptec.com)
+ * Copyright (c) 2000-2007 Adaptec, Inc. (aacraid@adaptec.com)
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
@@ -110,7 +110,7 @@
/*
* Align the beginning of Headers to commalign
*/
- align = (commalign - ((unsigned long)(base) & (commalign - 1)));
+ align = (commalign - ((ptrdiff_t)(base) & (commalign - 1)));
base = base + align;
phys = phys + align;
/*
diff -ru a/drivers/scsi/aacraid/dpcsup.c b/drivers/scsi/aacraid/dpcsup.c
--- a/drivers/scsi/aacraid/dpcsup.c 2007-03-27 14:51:11.671124593 -0400
+++ b/drivers/scsi/aacraid/dpcsup.c 2007-03-27 14:59:35.019740844 -0400
@@ -256,7 +256,8 @@
return 1;
}
memset(hw_fib, 0, sizeof(struct hw_fib));
- memcpy(hw_fib, (struct hw_fib *)(((unsigned long)(dev->regs.sa)) + (index & ~0x00000002L)), sizeof(struct hw_fib));
+ memcpy(hw_fib, (struct hw_fib *)(((ptrdiff_t)(dev->regs.sa)) +
+ (index & ~0x00000002L)), sizeof(struct hw_fib));
memset(fib, 0, sizeof(struct fib));
INIT_LIST_HEAD(&fib->fiblink);
fib->type = FSAFS_NTC_FIB_CONTEXT;
^ permalink raw reply [flat|nested] 10+ messages in thread
* [PATCH] aacraid: remove unused or deprecated firmware constants
2007-03-27 19:07 ` [PATCH] aacraid: resolve compiler warnings using ptrdiff_t Salyzyn, Mark
@ 2007-03-28 13:22 ` Salyzyn, Mark
2007-03-28 17:44 ` [PATCH] aacraid: fix print of Firmware Build Date and add TSID Salyzyn, Mark
0 siblings, 1 reply; 10+ messages in thread
From: Salyzyn, Mark @ 2007-03-28 13:22 UTC (permalink / raw)
To: linux-scsi
[-- Attachment #1: Type: text/plain, Size: 600 bytes --]
Just sweeping the floor clean in one spot. Some of these constants have
never been used in the driver or in the firmware (and thus are
meaningless). Triggered this patch because I discovered one of the
unused constants was actually incorrect and figured it was better to
clean them out than correct and update. There are no side effects at all
regarding this patch, it is purely cosmetic.
ObligatoryDisclaimer: Please accept my condolences regarding Outlook's
handling of patches.
This attached patch is against current scsi-misc-2.6
Signed-off-by: Mark Salyzyn <aacraid@adaptec.com>
[-- Attachment #2: aacraid_unused_firmware_constants.patch --]
[-- Type: application/octet-stream, Size: 2408 bytes --]
diff -ru a/drivers/scsi/aacraid/aacraid.h b/drivers/scsi/aacraid/aacraid.h
--- a/drivers/scsi/aacraid/aacraid.h 2007-03-28 08:29:40.028813161 -0400
+++ b/drivers/scsi/aacraid/aacraid.h 2007-03-28 09:09:31.131800825 -0400
@@ -48,49 +48,13 @@
/*
- * DON'T CHANGE THE ORDER, this is set by the firmware
+ * Firmware constants
*/
#define CT_NONE 0
-#define CT_VOLUME 1
-#define CT_MIRROR 2
-#define CT_STRIPE 3
-#define CT_RAID5 4
-#define CT_SSRW 5
-#define CT_SSRO 6
-#define CT_MORPH 7
-#define CT_PASSTHRU 8
-#define CT_RAID4 9
-#define CT_RAID10 10 /* stripe of mirror */
-#define CT_RAID00 11 /* stripe of stripe */
-#define CT_VOLUME_OF_MIRRORS 12 /* volume of mirror */
-#define CT_PSEUDO_RAID 13 /* really raid4 */
-#define CT_LAST_VOLUME_TYPE 14
#define CT_OK 218
-
-/*
- * Types of objects addressable in some fashion by the client.
- * This is a superset of those objects handled just by the filesystem
- * and includes "raw" objects that an administrator would use to
- * configure containers and filesystems.
- */
-
-#define FT_REG 1 /* regular file */
-#define FT_DIR 2 /* directory */
-#define FT_BLK 3 /* "block" device - reserved */
-#define FT_CHR 4 /* "character special" device - reserved */
-#define FT_LNK 5 /* symbolic link */
-#define FT_SOCK 6 /* socket */
-#define FT_FIFO 7 /* fifo */
#define FT_FILESYS 8 /* ADAPTEC's "FSA"(tm) filesystem */
#define FT_DRIVE 9 /* physical disk - addressable in scsi by bus/id/lun */
-#define FT_SLICE 10 /* virtual disk - raw volume - slice */
-#define FT_PARTITION 11 /* FSA partition - carved out of a slice - building block for containers */
-#define FT_VOLUME 12 /* Container - Volume Set */
-#define FT_STRIPE 13 /* Container - Stripe Set */
-#define FT_MIRROR 14 /* Container - Mirror Set */
-#define FT_RAID5 15 /* Container - Raid 5 Set */
-#define FT_DATABASE 16 /* Storage object with "foreign" content manager */
/*
* Host side memory scatter gather list
@@ -1519,8 +1483,7 @@
struct creation_info create_info; /* if applicable */
__le32 capacity;
__le32 vol; /* substrate structure */
- __le32 obj; /* FT_FILESYS,
- FT_DATABASE, etc. */
+ __le32 obj; /* FT_FILESYS, etc. */
__le32 state; /* unready for mounting,
readonly, etc. */
union aac_contentinfo fileinfo; /* Info specific to content
^ permalink raw reply [flat|nested] 10+ messages in thread
* [PATCH] aacraid: fix print of Firmware Build Date and add TSID
2007-03-28 13:22 ` [PATCH] aacraid: remove unused or deprecated firmware constants Salyzyn, Mark
@ 2007-03-28 17:44 ` Salyzyn, Mark
0 siblings, 0 replies; 10+ messages in thread
From: Salyzyn, Mark @ 2007-03-28 17:44 UTC (permalink / raw)
To: linux-scsi
[-- Attachment #1: Type: text/plain, Size: 1158 bytes --]
The Adapter build date that is to be printed on instantiation was not
displayed as a result of the supplemental adapter information structure
not being in sync with the Firmware; the driver took an early test cycle
version that had a miss-sized padded region at the head and the
structure was not re-checked at the end of qualification. The Build Date
was not a priority and is merely a cosmetic enhancement, and the wrong
location for the start of the structure member would not induce any
side-effect problems. We updated the structure to match the actual
format, and added the TSID (Tech Support Identification) value print,
should it be present, to the adapter instantiation announcements during
driver load.
This later enhancement should improve the relationship between Service
folk & Tech Support if the printed value of the TSID found it's way into
the circular file labeled G...
Neither of these values show in sysfs (yet).
ObligatoryDisclaimer: Please accept my condolences regarding Outlook's
handling of patches.
This attached patch is against current scsi-misc-2.6
Signed-off-by: Mark Salyzyn <aacraid@adaptec.com>
[-- Attachment #2: aacraid_build_date_tsid.patch --]
[-- Type: application/octet-stream, Size: 1511 bytes --]
diff -ru a/drivers/scsi/aacraid/aachba.c b/drivers/scsi/aacraid/aachba.c
--- a/drivers/scsi/aacraid/aachba.c 2007-03-28 09:23:37.990745437 -0400
+++ b/drivers/scsi/aacraid/aachba.c 2007-03-28 13:26:10.036377528 -0400
@@ -1194,6 +1194,12 @@
printk(KERN_INFO "%s%d: serial %x\n",
dev->name, dev->id,
le32_to_cpu(dev->adapter_info.serial[0]));
+ if (dev->supplement_adapter_info.VpdInfo.Tsid[0]) {
+ printk(KERN_INFO "%s%d: TSID %.*s\n",
+ dev->name, dev->id,
+ (int)sizeof(dev->supplement_adapter_info.VpdInfo.Tsid),
+ dev->supplement_adapter_info.VpdInfo.Tsid);
+ }
}
dev->nondasd_support = 0;
diff -ru a/drivers/scsi/aacraid/aacraid.h b/drivers/scsi/aacraid/aacraid.h
--- a/drivers/scsi/aacraid/aacraid.h 2007-03-28 09:23:37.991745310 -0400
+++ b/drivers/scsi/aacraid/aacraid.h 2007-03-28 13:26:10.061374374 -0400
@@ -843,10 +843,25 @@
__le32 Version;
__le32 FeatureBits;
u8 SlotNumber;
- u8 ReservedPad0[0];
+ u8 ReservedPad0[3];
u8 BuildDate[12];
__le32 CurrentNumberPorts;
- __le32 ReservedGrowth[24];
+ struct {
+ u8 AssemblyPn[8];
+ u8 FruPn[8];
+ u8 BatteryFruPn[8];
+ u8 EcVersionString[8];
+ u8 Tsid[12];
+ } VpdInfo;
+ __le32 FlashFirmwareRevision;
+ __le32 FlashFirmwareBuild;
+ __le32 RaidTypeMorphOptions;
+ __le32 FlashFirmwareBootRevision;
+ __le32 FlashFirmwareBootBuild;
+ u8 MfgPcbaSerialNo[12];
+ u8 MfgWWNName[8];
+ __le32 MoreFeatureBits;
+ __le32 ReservedGrowth[1];
};
#define AAC_FEATURE_FALCON 0x00000010
#define AAC_SIS_VERSION_V3 3
^ permalink raw reply [flat|nested] 10+ messages in thread
end of thread, other threads:[~2007-03-28 17:44 UTC | newest]
Thread overview: 10+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
[not found] <AE4F746F2AECFC4DA4AADD66A1DFEF01400B18@otce2k301.adaptec.com>
2007-03-21 17:49 ` [PATCH] aacraid: cleanup and version stamp driver Salyzyn, Mark
2007-03-21 18:49 ` Boaz Harrosh
2007-03-21 19:10 ` Salyzyn, Mark
2007-03-21 19:43 ` [PATCH] aacraid: Add likely() and unlikely() Salyzyn, Mark
2007-03-22 9:24 ` Arjan van de Ven
2007-03-26 13:21 ` [PATCH] aacraid: Add likely() and unlikely() Take 2 Salyzyn, Mark
2007-03-27 15:51 ` [PATCH] aacraid: Add SMC and SUN products to README Salyzyn, Mark
2007-03-27 19:07 ` [PATCH] aacraid: resolve compiler warnings using ptrdiff_t Salyzyn, Mark
2007-03-28 13:22 ` [PATCH] aacraid: remove unused or deprecated firmware constants Salyzyn, Mark
2007-03-28 17:44 ` [PATCH] aacraid: fix print of Firmware Build Date and add TSID Salyzyn, Mark
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.