Skip to contentSkip to conversation

SCSI updates for 2.6.9

PATCH In review James Bottomley 9 participants 13 messages Oct 18, 2004 – Oct 22, 2004 SCSI

lore
Share & tools
lore
#0 lore raw

PATCH 1/1 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

-
To unsubscribe from this list: send the line "unsubscribe linux-scsi" in the body of a message to [email protected]
More majordomo info at http://vger.kernel.org/majordomo-info.html

#1 lore raw

James Bottomley wrote:

James,

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

kr

#2 lore raw
In reply to James Bottomley
Quoted 2 lines · James Bottomley

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?

Signature · 1 line
Dmitry
#3 lore raw
Quoted 7 lines · Dmitry Torokhov
Quoted 2 lines · James Bottomley

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

This breaks Firewire SBP2 build:

Insert grumpy comment wrt testing in -mm.

Quoted 9 lines

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,

Quoted 5 lines
                 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.

#4 lore raw
In reply to Dmitry Torokhov
Quoted 16 lines · Dmitry Torokhov
Quoted 2 lines · James Bottomley

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,

Quoted 6 lines
                 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.

Signature · 89 lines
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)
#5 lore raw

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

Quoted 117 lines · Dmitry Torokhov
Quoted 16 lines · Dmitry Torokhov
Quoted 2 lines · James Bottomley

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,

Quoted 6 lines
                 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.

Signature · 23 lines
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
drivers/ieee1394/sbp2.c +4 -4
@@ -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

drivers/ieee1394/sbp2.h +9 -9
@@ -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)
#6 lore raw
Quoted 7 lines · Linus Torvalds

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.

Signature · 1 line
Jens Axboe
#7 lore raw
In reply to Linus Torvalds
Quoted 7 lines · Linus Torvalds

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.

Signature · 4 lines
Debian     - http://www.debian.org/
Linux 1394 - http://www.linux1394.org/
Subversion - http://subversion.tigris.org/
WatchGuard - http://www.watchguard.com/
#8 lore raw
In reply to Linus Torvalds
Quoted 5 lines · Linus Torvalds

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

#9 lore raw
Quoted 7 lines · James Bottomley

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

Signature · 6 lines
"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
#10 lore raw
In reply to James Bottomley
Quoted 11 lines · James Bottomley

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

James,
Could a unified diff (i.e. normal patch) version of this be placed somewhere?

Doug Gilbert

#11 lore raw
In reply to James Bottomley

Testing my tty stuff with "allyesconfig" shows this bug in the SCSI layer:

	....
	  LD      drivers/scsi/built-in.o
	drivers/scsi/qla1280.o(.data+0xe67e): multiple definition of `risc_code_addr01'
	drivers/scsi/qlogicfc.o(.data+0x0):drivers/scsi/qlogicfc.c:697: first defined here
	make[2]: *** [drivers/scsi/built-in.o] Error 1

Can we _please_ fix these broken globals without any driver prefixes? Looking at the code, making them static doesn't seem to be an option for all of these - although some certainly should.

Also, there's this really ugly UNIQUE_FW_NAME thing, which implies that somebody knew about the problem, but
(a) had absolutely no _f*cking_ taste (hint: just make the names unique _unconditionally_, and if you need the old names for some ass- backwards compatibility reason, add a #define or a linker alias!)
(b) didn't fix it right anyway.

Please? Can we fix this? "allyesconfig" may not be a realistic example, but not only is it good for testing, building two drivers into the system _is_ something that people do.

Linus

#12 lore raw
Quoted 1 line · Linus Torvalds

Testing my tty stuff with "allyesconfig" shows this bug in the SCSI layer:

Yes, I've got the fix for this in my list of pending emails to apply. I'm travelling tonight, so (because BK won't work disconnected), I'll be building a new SCSI tree tomorrow.

James