2004-10-18 22:04:45

by James Bottomley

[permalink] [raw]
Subject: [BK PATCH] SCSI updates for 2.6.9

This represents a significant amount of bug fix and clean up work and
driver updates (I'm afraid another large qla2xxx firmware update), plus
one new feature:

- A scsi target abstraction for the transport classes. This necessarily
adds another element to the sysfs path. However, it's been cooking in
-mm for over a month now with no reported side effects.

The update is available from

bk://linux-scsi.bkbits.net/scsi-for-linus-2.6

The short changelog is:

<james.smart:emulex.com>:
o suspending I/Os to a device
o Allow LLDD's to fail slave alloc (non-existent slave)

<jejb:pashleys.(none)>:
o ncr53c8xx: Convert to using transport classes
o add device_configure to the transport classes
o mcr53c8xx: remove INQUIRY snooping and believe the mid-layer flags
o ncr53c8xx: move driver local quirks up to scsi blacklist
o ncr53c8xx: remove integrity checking

<jejb:titanic.il.steeleye.com>:
o SCSI: fix Suspend I/O block/unblock path
o 53c700: update driver for host spi class
o scsi: fix host transport allocations
o Fix up 3w-xxxx after NULL removal mismerge
o add channel to struct scsi_target
o fix SPI transport attributes not showing up in sysfs

<luben_tuikov:adaptec.com>:
o Adding PCI ID tables to aic7xxx and aic79xxx

Adam Radford:
o 3ware 5/6/7/8000 driver update
o 3ware 5/6/7/8000 driver v1.26.02.000

Adrian Bunk:
o qla2xxx gcc-3.5 fixes

Alan Stern:
o Let LLD specify INQUIRY length
o Add BLIST_INQUIRY_36 to all USB blacklist entries

Andi Kleen:
o scsi: add proper pci id table to aic7xxx

Andrew Morton:
o psi240i build fix
o tmscsim.c build fix

Andrew Vasquez:
o SCSI QLA not working on latest *-mm SN2 (qla_dbg fixes)
o Fix qla2xxx mismerge
o [8/8] qla2xxx: Update version
o qla2xxx: 23xx/63xx firmware updates
o [5/8] qla2xxx: Rework ISR registration
o [4/8] qla2xxx: Small fixes
o qla2xxx: DMA pool/api usage
o [2/8] qla2xxx: Dynamic resize of request-q
o [1/8] qla2xxx: PCI posting fixes

Arjan van de Ven:
o mark scsi_add_host __must_check
o aic79xx hostraid support

Bjorn Helgaas:
o QLogic ISP2x00: remove needless busyloop

Christoph Hellwig:
o sparse __iomem annotations for qla2xxx
o merge scsiiom.c into tmscsim.c
o fdomain: reduce usage of global variables
o get rid of obsolete APIs in nsp32
o get rid of obsolete APIs in BusLogic
o tmscsim: remove remaining INQUIRY sniffing
o get rid of obsolete APIs in u14-34f
o tmscsim: remove superflous global host list
o merge initio source files
o a100u2w: cleanups
o initio: remove obsolete APIs, cleanup
o qla1280: ISP1020/1040 support
o merge a100u2w source files
o tmscsim: back out bogus eeprom reading changes
o fusion dead code removal
o fix inia100 dma mapping warnings
o remove internal queueing from inia100
o don't mark the initio 9100 driver broken
o switch fusion to use <linux/list.h> everywhere
o don't mark aacraid as experimental
o move scsi_add_host back to where it belongs in aacraid
o some ncr53c8xx decrufting
o remove abort,reset methods from host templates
o kill useless spinlock wrappers in BusLogic
o fix Scsi_Host leak in BusLogic
o start removing queue from tmscsim
o fix aic79xx module_init return value when no hardware
o allow non-modular mptctl
o avoid obsolete APIs in eata
o avoid obsolete APIs in ide-scsi
o don't include "scsi.h" in scsi_module.c
o update notcq blacklist
o refactor tmscsim inititalization code
o first steps at BusLogic cleanup
o update dmx3191d to modern pci/scsi probing
o update NCR5380 comments

Dave Jones:
o plug leaks in aic7xxx_osm
o Remove possible reuse of stale pointer in aic7xxx
o plug leaks in aic79xx
o Remove redundant freeing code from aic7770

Douglas Gilbert:
o scsi_mid_low_api.txt update
o scsi: normalize fixed and descriptor sense data
o sg jiffy library calls [was: sg kill local jiffies
o scsi_debug version 1.74

Guennadi Liakhovetski:
o tmscsim: use block-layer tags
o tmscsim: remove internal command queue
o tmscsim: use mid-layer's decision for tag support
o ST34555N misbehaves on tagged INQUIRY commands - add to blacklist
o tmscsim: remove redundant code

Jack Hammer:
o ServeRAID driver ( ips ) Version 7.10.18

James Bottomley:
o SCSI: Fix problems with non-power-of-two sector size discs
o Add refcounting to scsi command allocation
o Fix a100u2w compile error
o Remove duplicate IDENTIFY from scsi.h
o complete the bus_addr_t removal from aic7xxx
o add .module to qla1280 template
o remove old ifdefs aic7xxx
o remove old ifdefs aic79xx
o scsi: Add reset ioctl capability to ULDs
o advansys build fix
o fix printk warning in sg.c
o fix undefined function msleep warning in osst
o Fix up scsi_test_unit_ready() to work correctly with CD-ROMs
o Add bus signalling host attribute to spi transport class
o Make the SPI transport parameters operate at the target level
o Add host and target transport class abstractions
o Add scsi_target abstraction and place it in sysfs

Jeremy Higdon:
o add ability to set device queue depth to mptfusion
o scsi: add blacklist attribute indicating no ULD attach
o sg.c to warn about ambiguous data direction

Jesse Barnes:
o SCSI QLA not working on latest *-mm SN2

Joshua Kwan:
o Disambiguate esp.c clones

Kai M?kisara:
o avoid obsolete "scsi.h" APIs in st

Luben Tuikov:
o aic7xxx and aic79xx: fix sleeping while holding a lock

Mark Haverkamp:
o aacraid: Add get container name functionality
o aacraid: dynamic dev update
o 2.6.9 aacraid: aac_count fix
o aacraid: Detect non-committed array

Matthew Wilcox:
o Add SPI-5 constants to scsi.h
o sym2 2.1.18k

Maximilian Attems:
o scsi/sata_sx4: replace schedule_timeout() with
o scsi/qla_os: replace schedule_timeout() with msleep()
o scsi/qla_init: replace schedule_timeout() with
o scsi/sd: replace schedule_timeout() with msleep()
o scsi/wd7000: replace schedule_timeout() with msleep()
o scsi/osst: replace schedule_timeout() with msleep()
o scsi/mesh: replace schedule_timeout() with msleep()

Mike Miller:
o cciss: fixes for clustering
o cciss: SCSI API updates

Olaf Hering:
o mesh is ppc32-only

Sreenivas Bagalkote:
o remove config_compat from Megaraid
o megaraid 2.20.4: Fix a data corruption bug


And the diffstat:

b/Documentation/scsi/ChangeLog.megaraid | 6
b/Documentation/scsi/scsi_mid_low_api.txt | 52
b/drivers/block/cciss.c | 88
b/drivers/block/cciss_scsi.c | 53
b/drivers/message/fusion/Kconfig | 2
b/drivers/message/fusion/mptbase.c | 105
b/drivers/message/fusion/mptbase.h | 155
b/drivers/message/fusion/mptscsih.c | 124
b/drivers/s390/scsi/zfcp_scsi.c | 82
b/drivers/scsi/3w-xxxx.c | 3152 ++-----
b/drivers/scsi/3w-xxxx.h | 151
b/drivers/scsi/53c700.c | 86
b/drivers/scsi/53c700.h | 11
b/drivers/scsi/BusLogic.c | 175
b/drivers/scsi/BusLogic.h | 44
b/drivers/scsi/Kconfig | 26
b/drivers/scsi/Makefile | 2
b/drivers/scsi/NCR5380.c | 65
b/drivers/scsi/NCR_D700.c | 25
b/drivers/scsi/NCR_Q720.c | 8
b/drivers/scsi/a100u2w.c | 1202 ++
b/drivers/scsi/a100u2w.h | 416
b/drivers/scsi/aacraid/aachba.c | 442
b/drivers/scsi/aacraid/aacraid.h | 153
b/drivers/scsi/aacraid/linit.c | 67
b/drivers/scsi/advansys.c | 1
b/drivers/scsi/aic7xxx/aic7770_osm.c | 4
b/drivers/scsi/aic7xxx/aic79xx.h | 8
b/drivers/scsi/aic7xxx/aic79xx_core.c | 15
b/drivers/scsi/aic7xxx/aic79xx_inline.h | 10
b/drivers/scsi/aic7xxx/aic79xx_osm.c | 108
b/drivers/scsi/aic7xxx/aic79xx_osm.h | 82
b/drivers/scsi/aic7xxx/aic79xx_osm_pci.c | 149
b/drivers/scsi/aic7xxx/aic79xx_pci.c | 57
b/drivers/scsi/aic7xxx/aic79xx_pci.h | 70
b/drivers/scsi/aic7xxx/aic7xxx.h | 12
b/drivers/scsi/aic7xxx/aic7xxx_core.c | 9
b/drivers/scsi/aic7xxx/aic7xxx_osm.c | 100
b/drivers/scsi/aic7xxx/aic7xxx_osm.h | 81
b/drivers/scsi/aic7xxx/aic7xxx_osm_pci.c | 99
b/drivers/scsi/aic7xxx/aic7xxx_pci.c | 83
b/drivers/scsi/aic7xxx/aic7xxx_pci.h | 124
b/drivers/scsi/aic7xxx/aiclib.h | 39
b/drivers/scsi/aic7xxx/cam.h | 6
b/drivers/scsi/aic7xxx_old.c | 1
b/drivers/scsi/dec_esp.c | 2
b/drivers/scsi/dmx3191d.c | 213
b/drivers/scsi/eata.c | 228
b/drivers/scsi/fdomain.c | 146
b/drivers/scsi/hosts.c | 22
b/drivers/scsi/ide-scsi.c | 24
b/drivers/scsi/initio.c | 3184 +++++++
b/drivers/scsi/initio.h | 739 +
b/drivers/scsi/ips.c | 26
b/drivers/scsi/ips.h | 57
b/drivers/scsi/jazz_esp.c | 2
b/drivers/scsi/lasi700.c | 20
b/drivers/scsi/mac_esp.c | 2
b/drivers/scsi/mca_53c9x.c | 2
b/drivers/scsi/megaraid/megaraid_mm.c | 6
b/drivers/scsi/megaraid/megaraid_mm.h | 4
b/drivers/scsi/mesh.c | 12
b/drivers/scsi/ncr53c8xx.c | 1349 ---
b/drivers/scsi/ncr53c8xx.h | 4
b/drivers/scsi/nsp32.c | 103
b/drivers/scsi/nsp32.h | 4
b/drivers/scsi/osst.c | 19
b/drivers/scsi/psi240i.c | 37
b/drivers/scsi/ql1040_fw.h | 2101 ++++
b/drivers/scsi/qla1280.c | 32
b/drivers/scsi/qla2xxx/ql2300_fw.c |13378 +++++++++++++++---------------
b/drivers/scsi/qla2xxx/ql2322_fw.c |12001 +++++++++++++-------------
b/drivers/scsi/qla2xxx/ql6312_fw.c |12741 ++++++++++++++--------------
b/drivers/scsi/qla2xxx/ql6322_fw.c |11193 ++++++++++++-------------
b/drivers/scsi/qla2xxx/qla_dbg.c | 94
b/drivers/scsi/qla2xxx/qla_def.h | 37
b/drivers/scsi/qla2xxx/qla_gbl.h | 3
b/drivers/scsi/qla2xxx/qla_init.c | 226
b/drivers/scsi/qla2xxx/qla_inline.h | 15
b/drivers/scsi/qla2xxx/qla_iocb.c | 15
b/drivers/scsi/qla2xxx/qla_isr.c | 281
b/drivers/scsi/qla2xxx/qla_mbx.c | 41
b/drivers/scsi/qla2xxx/qla_os.c | 466 -
b/drivers/scsi/qla2xxx/qla_rscn.c | 31
b/drivers/scsi/qla2xxx/qla_sup.c | 22
b/drivers/scsi/qla2xxx/qla_version.h | 4
b/drivers/scsi/qlogicfc.c | 8
b/drivers/scsi/sata_sx4.c | 6
b/drivers/scsi/scsi.c | 40
b/drivers/scsi/scsi_debug.c | 125
b/drivers/scsi/scsi_devinfo.c | 23
b/drivers/scsi/scsi_error.c | 76
b/drivers/scsi/scsi_ioctl.c | 49
b/drivers/scsi/scsi_lib.c | 188
b/drivers/scsi/scsi_module.c | 1
b/drivers/scsi/scsi_priv.h | 21
b/drivers/scsi/scsi_scan.c | 317
b/drivers/scsi/scsi_sysfs.c | 192
b/drivers/scsi/scsi_transport_fc.c | 474 -
b/drivers/scsi/scsi_transport_spi.c | 263
b/drivers/scsi/scsicam.c | 9
b/drivers/scsi/sd.c | 20
b/drivers/scsi/sg.c | 18
b/drivers/scsi/sim710.c | 19
b/drivers/scsi/sr_ioctl.c | 12
b/drivers/scsi/st.c | 243
b/drivers/scsi/st.h | 8
b/drivers/scsi/sun3x_esp.c | 2
b/drivers/scsi/sym53c8xx_2/sym53c8xx.h | 35
b/drivers/scsi/sym53c8xx_2/sym_conf.h | 35
b/drivers/scsi/sym53c8xx_2/sym_defs.h | 37
b/drivers/scsi/sym53c8xx_2/sym_fw.c | 37
b/drivers/scsi/sym53c8xx_2/sym_fw.h | 35
b/drivers/scsi/sym53c8xx_2/sym_fw1.h | 35
b/drivers/scsi/sym53c8xx_2/sym_fw2.h | 35
b/drivers/scsi/sym53c8xx_2/sym_glue.c | 316
b/drivers/scsi/sym53c8xx_2/sym_glue.h | 39
b/drivers/scsi/sym53c8xx_2/sym_hipd.c | 58
b/drivers/scsi/sym53c8xx_2/sym_hipd.h | 41
b/drivers/scsi/sym53c8xx_2/sym_malloc.c | 35
b/drivers/scsi/sym53c8xx_2/sym_misc.c | 35
b/drivers/scsi/sym53c8xx_2/sym_misc.h | 35
b/drivers/scsi/sym53c8xx_2/sym_nvram.c | 35
b/drivers/scsi/sym53c8xx_2/sym_nvram.h | 35
b/drivers/scsi/sym53c8xx_comm.h | 358
b/drivers/scsi/sym53c8xx_defs.h | 7
b/drivers/scsi/tmscsim.c | 2734 ++++--
b/drivers/scsi/tmscsim.h | 96
b/drivers/scsi/u14-34f.c | 70
b/drivers/scsi/wd7000.c | 3
b/drivers/scsi/zalon.c | 7
b/include/scsi/scsi.h | 19
b/include/scsi/scsi_device.h | 33
b/include/scsi/scsi_devinfo.h | 2
b/include/scsi/scsi_eh.h | 35
b/include/scsi/scsi_host.h | 21
b/include/scsi/scsi_ioctl.h | 2
b/include/scsi/scsi_transport.h | 24
b/include/scsi/scsi_transport_fc.h | 61
b/include/scsi/scsi_transport_spi.h | 95
drivers/scsi/dmx3191d.h | 48
drivers/scsi/i60uscsi.c | 805 -
drivers/scsi/i91uscsi.c | 2672 -----
drivers/scsi/i91uscsi.h | 843 -
drivers/scsi/ini9100u.c | 727 -
drivers/scsi/ini9100u.h | 251
drivers/scsi/inia100.c | 580 -
drivers/scsi/inia100.h | 533 -
drivers/scsi/scsiiom.c | 1654 ---
149 files changed, 40417 insertions(+), 40891 deletions(-)

James



2004-10-19 00:30:08

by K.R. Foley

[permalink] [raw]
Subject: Re: [BK PATCH] SCSI updates for 2.6.9

James Bottomley wrote:

James,

Does this fix the problem with AIC-7899 that were introduced recently?

kr

2004-10-19 04:44:50

by Dmitry Torokhov

[permalink] [raw]
Subject: Re: [BK PATCH] SCSI updates for 2.6.9

On Monday 18 October 2004 05:03 pm, James Bottomley wrote:

> Matthew Wilcox:
> o Add SPI-5 constants to scsi.h

This breaks Firewire SBP2 build:

CC [M] drivers/ieee1394/sbp2.o
In file included from drivers/ieee1394/sbp2.c:78:
drivers/ieee1394/sbp2.h:61:1: warning: "ABORT_TASK_SET" redefined
In file included from drivers/scsi/scsi.h:31,
from drivers/ieee1394/sbp2.c:67:
include/scsi/scsi.h:255:1: warning: this is the location of the previous definition
In file included from drivers/ieee1394/sbp2.c:78:
drivers/ieee1394/sbp2.h:62:1: warning: "LOGICAL_UNIT_RESET" redefined
In file included from drivers/scsi/scsi.h:31,
from drivers/ieee1394/sbp2.c:67:
include/scsi/scsi.h:267:1: warning: this is the location of the previous definition

It looks like firewire has its own set of commands with conflicting names.
Who should win?

--
Dmitry

2004-10-19 05:07:22

by Andrew Morton

[permalink] [raw]
Subject: Re: [BK PATCH] SCSI updates for 2.6.9

Dmitry Torokhov <[email protected]> wrote:
>
> On Monday 18 October 2004 05:03 pm, James Bottomley wrote:
>
> > Matthew Wilcox:
> > o Add SPI-5 constants to scsi.h
>
> This breaks Firewire SBP2 build:

Insert grumpy comment wrt testing in -mm.

> CC [M] drivers/ieee1394/sbp2.o
> In file included from drivers/ieee1394/sbp2.c:78:
> drivers/ieee1394/sbp2.h:61:1: warning: "ABORT_TASK_SET" redefined
> In file included from drivers/scsi/scsi.h:31,
> from drivers/ieee1394/sbp2.c:67:
> include/scsi/scsi.h:255:1: warning: this is the location of the previous definition
> In file included from drivers/ieee1394/sbp2.c:78:
> drivers/ieee1394/sbp2.h:62:1: warning: "LOGICAL_UNIT_RESET" redefined
> In file included from drivers/scsi/scsi.h:31,
> from drivers/ieee1394/sbp2.c:67:
> include/scsi/scsi.h:267:1: warning: this is the location of the previous definition
>
> It looks like firewire has its own set of commands with conflicting names.
> Who should win?

Probably 1394 should be using less generic-looking names.

I assume this patch broke drivers/s390/scsi/zfcp_def.h as well.

2004-10-19 05:12:42

by Dmitry Torokhov

[permalink] [raw]
Subject: Re: [BK PATCH] SCSI updates for 2.6.9

On Monday 18 October 2004 11:41 pm, Dmitry Torokhov wrote:
> On Monday 18 October 2004 05:03 pm, James Bottomley wrote:
>
> > Matthew Wilcox:
> > o Add SPI-5 constants to scsi.h
>
> This breaks Firewire SBP2 build:
>
> CC [M] drivers/ieee1394/sbp2.o
> In file included from drivers/ieee1394/sbp2.c:78:
> drivers/ieee1394/sbp2.h:61:1: warning: "ABORT_TASK_SET" redefined
> In file included from drivers/scsi/scsi.h:31,
> from drivers/ieee1394/sbp2.c:67:
> include/scsi/scsi.h:255:1: warning: this is the location of the previous definition
> In file included from drivers/ieee1394/sbp2.c:78:
> drivers/ieee1394/sbp2.h:62:1: warning: "LOGICAL_UNIT_RESET" redefined
> In file included from drivers/scsi/scsi.h:31,
> from drivers/ieee1394/sbp2.c:67:
> include/scsi/scsi.h:267:1: warning: this is the location of the previous definition
>
> It looks like firewire has its own set of commands with conflicting names.
> Who should win?
>

I think something like the patch below shoudl work.

--
Dmitry


===================================================================


[email protected], 2004-10-19 00:08:16-05:00, [email protected]
IEEE1394: SBP-2 - rename some constants to fix clash with new
SCSI core defines.

Signed-off-by: Dmitry Torokhov <[email protected]>


sbp2.c | 8 ++++----
sbp2.h | 18 +++++++++---------
2 files changed, 13 insertions(+), 13 deletions(-)


===================================================================



diff -Nru a/drivers/ieee1394/sbp2.c b/drivers/ieee1394/sbp2.c
--- a/drivers/ieee1394/sbp2.c 2004-10-19 00:10:58 -05:00
+++ b/drivers/ieee1394/sbp2.c 2004-10-19 00:10:58 -05:00
@@ -1088,7 +1088,7 @@
scsi_id->query_logins_orb->query_response_hi = ORB_SET_NODE_ID(hi->host->node_id);
SBP2_DEBUG("sbp2_query_logins: query_response_hi/lo initialized");

- scsi_id->query_logins_orb->lun_misc = ORB_SET_FUNCTION(QUERY_LOGINS_REQUEST);
+ scsi_id->query_logins_orb->lun_misc = ORB_SET_FUNCTION(SBP2_QUERY_LOGINS_REQUEST);
scsi_id->query_logins_orb->lun_misc |= ORB_SET_NOTIFY(1);
if (scsi_id->sbp2_device_type_and_lun != SBP2_DEVICE_TYPE_LUN_UNINITIALIZED) {
scsi_id->query_logins_orb->lun_misc |= ORB_SET_LUN(scsi_id->sbp2_device_type_and_lun);
@@ -1199,7 +1199,7 @@
scsi_id->login_orb->login_response_hi = ORB_SET_NODE_ID(hi->host->node_id);
SBP2_DEBUG("sbp2_login_device: login_response_hi/lo initialized");

- scsi_id->login_orb->lun_misc = ORB_SET_FUNCTION(LOGIN_REQUEST);
+ scsi_id->login_orb->lun_misc = ORB_SET_FUNCTION(SBP2_LOGIN_REQUEST);
scsi_id->login_orb->lun_misc |= ORB_SET_RECONNECT(0); /* One second reconnect time */
scsi_id->login_orb->lun_misc |= ORB_SET_EXCLUSIVE(exclusive_login); /* Exclusive access to device */
scsi_id->login_orb->lun_misc |= ORB_SET_NOTIFY(1); /* Notify us of login complete */
@@ -1325,7 +1325,7 @@
scsi_id->logout_orb->reserved3 = 0x0;
scsi_id->logout_orb->reserved4 = 0x0;

- scsi_id->logout_orb->login_ID_misc = ORB_SET_FUNCTION(LOGOUT_REQUEST);
+ scsi_id->logout_orb->login_ID_misc = ORB_SET_FUNCTION(SBP2_LOGOUT_REQUEST);
scsi_id->logout_orb->login_ID_misc |= ORB_SET_LOGIN_ID(scsi_id->login_response->length_login_ID);

/* Notify us when complete */
@@ -1390,7 +1390,7 @@
scsi_id->reconnect_orb->reserved3 = 0x0;
scsi_id->reconnect_orb->reserved4 = 0x0;

- scsi_id->reconnect_orb->login_ID_misc = ORB_SET_FUNCTION(RECONNECT_REQUEST);
+ scsi_id->reconnect_orb->login_ID_misc = ORB_SET_FUNCTION(SBP2_RECONNECT_REQUEST);
scsi_id->reconnect_orb->login_ID_misc |=
ORB_SET_LOGIN_ID(scsi_id->login_response->length_login_ID);

diff -Nru a/drivers/ieee1394/sbp2.h b/drivers/ieee1394/sbp2.h
--- a/drivers/ieee1394/sbp2.h 2004-10-19 00:10:58 -05:00
+++ b/drivers/ieee1394/sbp2.h 2004-10-19 00:10:58 -05:00
@@ -52,15 +52,15 @@
u8 cdb[12];
};

-#define LOGIN_REQUEST 0x0
-#define QUERY_LOGINS_REQUEST 0x1
-#define RECONNECT_REQUEST 0x3
-#define SET_PASSWORD_REQUEST 0x4
-#define LOGOUT_REQUEST 0x7
-#define ABORT_TASK_REQUEST 0xb
-#define ABORT_TASK_SET 0xc
-#define LOGICAL_UNIT_RESET 0xe
-#define TARGET_RESET_REQUEST 0xf
+#define SBP2_LOGIN_REQUEST 0x0
+#define SBP2_QUERY_LOGINS_REQUEST 0x1
+#define SBP2_RECONNECT_REQUEST 0x3
+#define SBP2_SET_PASSWORD_REQUEST 0x4
+#define SBP2_LOGOUT_REQUEST 0x7
+#define SBP2_ABORT_TASK_REQUEST 0xb
+#define SBP2_ABORT_TASK_SET 0xc
+#define SBP2_LOGICAL_UNIT_RESET 0xe
+#define SBP2_TARGET_RESET_REQUEST 0xf

#define ORB_SET_LUN(value) (value & 0xffff)
#define ORB_SET_FUNCTION(value) ((value & 0xf) << 16)

2004-10-19 07:13:38

by Linus Torvalds

[permalink] [raw]
Subject: Re: [BK PATCH] SCSI updates for 2.6.9


Ben,
does this look ok to you?

Arguably the SCSI layer should also have proper prefixes for its constants
- and in fact they do kind of exist as the GPCMD_xxx constants. Oh, well.
Regardless, the sbp2 constants do look like they want prefixing..

Linus

On Tue, 19 Oct 2004, Dmitry Torokhov wrote:

> On Monday 18 October 2004 11:41 pm, Dmitry Torokhov wrote:
> > On Monday 18 October 2004 05:03 pm, James Bottomley wrote:
> >
> > > Matthew Wilcox:
> > > o Add SPI-5 constants to scsi.h
> >
> > This breaks Firewire SBP2 build:
> >
> > CC [M] drivers/ieee1394/sbp2.o
> > In file included from drivers/ieee1394/sbp2.c:78:
> > drivers/ieee1394/sbp2.h:61:1: warning: "ABORT_TASK_SET" redefined
> > In file included from drivers/scsi/scsi.h:31,
> > from drivers/ieee1394/sbp2.c:67:
> > include/scsi/scsi.h:255:1: warning: this is the location of the previous definition
> > In file included from drivers/ieee1394/sbp2.c:78:
> > drivers/ieee1394/sbp2.h:62:1: warning: "LOGICAL_UNIT_RESET" redefined
> > In file included from drivers/scsi/scsi.h:31,
> > from drivers/ieee1394/sbp2.c:67:
> > include/scsi/scsi.h:267:1: warning: this is the location of the previous definition
> >
> > It looks like firewire has its own set of commands with conflicting names.
> > Who should win?
> >
>
> I think something like the patch below shoudl work.
>
> --
> Dmitry
>
>
> ===================================================================
>
>
> [email protected], 2004-10-19 00:08:16-05:00, [email protected]
> IEEE1394: SBP-2 - rename some constants to fix clash with new
> SCSI core defines.
>
> Signed-off-by: Dmitry Torokhov <[email protected]>
>
>
> sbp2.c | 8 ++++----
> sbp2.h | 18 +++++++++---------
> 2 files changed, 13 insertions(+), 13 deletions(-)
>
>
> ===================================================================
>
>
>
> diff -Nru a/drivers/ieee1394/sbp2.c b/drivers/ieee1394/sbp2.c
> --- a/drivers/ieee1394/sbp2.c 2004-10-19 00:10:58 -05:00
> +++ b/drivers/ieee1394/sbp2.c 2004-10-19 00:10:58 -05:00
> @@ -1088,7 +1088,7 @@
> scsi_id->query_logins_orb->query_response_hi = ORB_SET_NODE_ID(hi->host->node_id);
> SBP2_DEBUG("sbp2_query_logins: query_response_hi/lo initialized");
>
> - scsi_id->query_logins_orb->lun_misc = ORB_SET_FUNCTION(QUERY_LOGINS_REQUEST);
> + scsi_id->query_logins_orb->lun_misc = ORB_SET_FUNCTION(SBP2_QUERY_LOGINS_REQUEST);
> scsi_id->query_logins_orb->lun_misc |= ORB_SET_NOTIFY(1);
> if (scsi_id->sbp2_device_type_and_lun != SBP2_DEVICE_TYPE_LUN_UNINITIALIZED) {
> scsi_id->query_logins_orb->lun_misc |= ORB_SET_LUN(scsi_id->sbp2_device_type_and_lun);
> @@ -1199,7 +1199,7 @@
> scsi_id->login_orb->login_response_hi = ORB_SET_NODE_ID(hi->host->node_id);
> SBP2_DEBUG("sbp2_login_device: login_response_hi/lo initialized");
>
> - scsi_id->login_orb->lun_misc = ORB_SET_FUNCTION(LOGIN_REQUEST);
> + scsi_id->login_orb->lun_misc = ORB_SET_FUNCTION(SBP2_LOGIN_REQUEST);
> scsi_id->login_orb->lun_misc |= ORB_SET_RECONNECT(0); /* One second reconnect time */
> scsi_id->login_orb->lun_misc |= ORB_SET_EXCLUSIVE(exclusive_login); /* Exclusive access to device */
> scsi_id->login_orb->lun_misc |= ORB_SET_NOTIFY(1); /* Notify us of login complete */
> @@ -1325,7 +1325,7 @@
> scsi_id->logout_orb->reserved3 = 0x0;
> scsi_id->logout_orb->reserved4 = 0x0;
>
> - scsi_id->logout_orb->login_ID_misc = ORB_SET_FUNCTION(LOGOUT_REQUEST);
> + scsi_id->logout_orb->login_ID_misc = ORB_SET_FUNCTION(SBP2_LOGOUT_REQUEST);
> scsi_id->logout_orb->login_ID_misc |= ORB_SET_LOGIN_ID(scsi_id->login_response->length_login_ID);
>
> /* Notify us when complete */
> @@ -1390,7 +1390,7 @@
> scsi_id->reconnect_orb->reserved3 = 0x0;
> scsi_id->reconnect_orb->reserved4 = 0x0;
>
> - scsi_id->reconnect_orb->login_ID_misc = ORB_SET_FUNCTION(RECONNECT_REQUEST);
> + scsi_id->reconnect_orb->login_ID_misc = ORB_SET_FUNCTION(SBP2_RECONNECT_REQUEST);
> scsi_id->reconnect_orb->login_ID_misc |=
> ORB_SET_LOGIN_ID(scsi_id->login_response->length_login_ID);
>
> diff -Nru a/drivers/ieee1394/sbp2.h b/drivers/ieee1394/sbp2.h
> --- a/drivers/ieee1394/sbp2.h 2004-10-19 00:10:58 -05:00
> +++ b/drivers/ieee1394/sbp2.h 2004-10-19 00:10:58 -05:00
> @@ -52,15 +52,15 @@
> u8 cdb[12];
> };
>
> -#define LOGIN_REQUEST 0x0
> -#define QUERY_LOGINS_REQUEST 0x1
> -#define RECONNECT_REQUEST 0x3
> -#define SET_PASSWORD_REQUEST 0x4
> -#define LOGOUT_REQUEST 0x7
> -#define ABORT_TASK_REQUEST 0xb
> -#define ABORT_TASK_SET 0xc
> -#define LOGICAL_UNIT_RESET 0xe
> -#define TARGET_RESET_REQUEST 0xf
> +#define SBP2_LOGIN_REQUEST 0x0
> +#define SBP2_QUERY_LOGINS_REQUEST 0x1
> +#define SBP2_RECONNECT_REQUEST 0x3
> +#define SBP2_SET_PASSWORD_REQUEST 0x4
> +#define SBP2_LOGOUT_REQUEST 0x7
> +#define SBP2_ABORT_TASK_REQUEST 0xb
> +#define SBP2_ABORT_TASK_SET 0xc
> +#define SBP2_LOGICAL_UNIT_RESET 0xe
> +#define SBP2_TARGET_RESET_REQUEST 0xf
>
> #define ORB_SET_LUN(value) (value & 0xffff)
> #define ORB_SET_FUNCTION(value) ((value & 0xf) << 16)
>

2004-10-19 08:07:28

by Jens Axboe

[permalink] [raw]
Subject: Re: [BK PATCH] SCSI updates for 2.6.9

On Tue, Oct 19 2004, Linus Torvalds wrote:
>
> Ben,
> does this look ok to you?
>
> Arguably the SCSI layer should also have proper prefixes for its constants
> - and in fact they do kind of exist as the GPCMD_xxx constants. Oh, well.
> Regardless, the sbp2 constants do look like they want prefixing..

But only for commands (GPCMD is general packet command), not for
anything else. Would be nice to standardize prefixes for other things,
too.

--
Jens Axboe

2004-10-19 08:51:59

by Ben Collins

[permalink] [raw]
Subject: Re: [BK PATCH] SCSI updates for 2.6.9

On Tue, Oct 19, 2004 at 12:13:08AM -0700, Linus Torvalds wrote:
>
> Ben,
> does this look ok to you?
>
> Arguably the SCSI layer should also have proper prefixes for its constants
> - and in fact they do kind of exist as the GPCMD_xxx constants. Oh, well.
> Regardless, the sbp2 constants do look like they want prefixing..

Looks good to me.

--
Debian - http://www.debian.org/
Linux 1394 - http://www.linux1394.org/
Subversion - http://subversion.tigris.org/
WatchGuard - http://www.watchguard.com/

2004-10-19 13:55:17

by James Bottomley

[permalink] [raw]
Subject: Re: [BK PATCH] SCSI updates for 2.6.9

On Tue, 2004-10-19 at 02:13, Linus Torvalds wrote:
> does this look ok to you?
>
> Arguably the SCSI layer should also have proper prefixes for its constants
> - and in fact they do kind of exist as the GPCMD_xxx constants. Oh, well.
> Regardless, the sbp2 constants do look like they want prefixing..

We're slowly standardising at least some of our namespace problems.

The condition codes are all migrating to SAM_STAT_ prefix, so
CHECK_CONDITION becomes SAM_STAT_CHECK_CONDITION (and gets shifted in
the process).

We still have a nasty namespace pollution problem on the SCSI commands
though and cleaning this up is problematic since they permeate not just
SCSI but large areas of other drivers as well.

James


2004-10-19 16:20:41

by Matthew Wilcox

[permalink] [raw]
Subject: Re: [BK PATCH] SCSI updates for 2.6.9

On Tue, Oct 19, 2004 at 08:54:43AM -0500, James Bottomley wrote:
> The condition codes are all migrating to SAM_STAT_ prefix, so
> CHECK_CONDITION becomes SAM_STAT_CHECK_CONDITION (and gets shifted in
> the process).
>
> We still have a nasty namespace pollution problem on the SCSI commands
> though and cleaning this up is problematic since they permeate not just
> SCSI but large areas of other drivers as well.

How would you feel about COMMAND_COMPLETE -> SPI_MSG_COMMAND_COMPLETE,
possibly even turning them into an enum, and putting them in the new
file <scsi/spi.h>?

That would get us out of the problems with SBP defining different numbers
for the same constants. sbp2 (a) wouldn't include <scsi/spi.h> and (b)
would use an SBP_MSG_ prefix anyway

--
"Next the statesmen will invent cheap lies, putting the blame upon
the nation that is attacked, and every man will be glad of those
conscience-soothing falsities, and will diligently study them, and refuse
to examine any refutations of them; and thus he will by and by convince
himself that the war is just, and will thank God for the better sleep
he enjoys after this process of grotesque self-deception." -- Mark Twain