Skip to contentSkip to conversation

Deprecate DAC960 driver

PATCH Applied Hannes Reinecke 3 participants 7 messages Jan 19, 2018 – Jan 23, 2018

Subsystems (2)

v2 of 6 Applied Latest is v6 →

lore
Share & tools
lore
#0 lore raw

v2 cover Deprecate DAC960 driver

Hi all,

as we're trying to get rid of the remaining request_fn drivers here's a patchset to move the DAC960 driver to the SCSI stack.
As per request from hch I've split up the driver into two new SCSI drivers called 'myrb' and 'myrs'.

The 'myrb' driver only supports the earlier (V1) firmware interface, which doesn't have a SCSI interface for the logical drives; for those I've added a (pretty rudimentary, admittedly) SCSI translation for them.

The 'myrs' driver supports the newer (V2) firmware interface, which is SCSI based and doesn't need the translation layer.

And the weird proc interface from DAC960 has been converted to sysfs attributes.

Tested with eXtremeRAID 1100 (for V1 Firmware) and Mylex AcceleRAID 170 (for V2 Firmware).

Changes to v1:
- Split into two drivers
- Improve scanning for V1 firmware interface

Hannes Reinecke (5):
raid_class: Add 'JBOD' RAID level
scsi: Add VENDOR_SPECIFIC sense code definitions
myrb: Add Mylex RAID controller (block interface)
myrs: Add Mylex RAID controller (SCSI interface) drivers/block: Remove DAC960 driver

 Documentation/blockdev/README.DAC960 |  756 ----
 drivers/block/DAC960.c               | 7244 ----------------------------------
 drivers/block/DAC960.h               | 4415 ---------------------
 drivers/block/Kconfig                |   12 -
 drivers/block/Makefile               |    1 -
 drivers/scsi/Kconfig                 |   28 +
 drivers/scsi/Makefile                |    2 +
 drivers/scsi/myrb.c                  | 3249 +++++++++++++++
 drivers/scsi/myrb.h                  | 1891 +++++++++
 drivers/scsi/myrs.c                  | 2947 ++++++++++++++
 drivers/scsi/myrs.h                  | 2042 ++++++++++
 drivers/scsi/raid_class.c            |    1 +
 include/linux/raid_class.h           |    1 +
 include/scsi/scsi_proto.h            |    1 +
 14 files changed, 10162 insertions(+), 12428 deletions(-)
 delete mode 100644 Documentation/blockdev/README.DAC960
 delete mode 100644 drivers/block/DAC960.c
 delete mode 100644 drivers/block/DAC960.h
 create mode 100644 drivers/scsi/myrb.c
 create mode 100644 drivers/scsi/myrb.h
 create mode 100644 drivers/scsi/myrs.c
 create mode 100644 drivers/scsi/myrs.h
Signature · 1 line
2.12.3
#1 lore raw

PATCH v2 1/5 raid_class: Add 'JBOD' RAID level

Not a real RAID level, but some HBAs support JBOD in addition to the 'classical' RAID levels.

---
 drivers/scsi/raid_class.c  | 1 +
 include/linux/raid_class.h | 1 +
 2 files changed, 2 insertions(+)
drivers/scsi/raid_class.c +1 -0
index 2c146b44d95f..ea88906d2cc5 100644
@@ -157,6 +157,7 @@ static struct {
 	{ RAID_LEVEL_5, "raid5" },
 	{ RAID_LEVEL_50, "raid50" },
 	{ RAID_LEVEL_6, "raid6" },
+	{ RAID_LEVEL_JBOD, "jbod" },
 };
 
 static const char *raid_level_name(enum raid_level level)
include/linux/raid_class.h +1 -0
index 31e1ff69efc8..ec8655514283 100644
@@ -38,6 +38,7 @@ enum raid_level {
 	RAID_LEVEL_5,
 	RAID_LEVEL_50,
 	RAID_LEVEL_6,
+	RAID_LEVEL_JBOD,
 };
 
 struct raid_data {
Signature · 1 line
2.12.3
#2 lore raw

PATCH v2 2/5 scsi: Add VENDOR_SPECIFIC sense code definitions

In reply to Hannes Reinecke

Some older devices will return vendor specific sense codes, so we should be adding a definition for it.

---
 include/scsi/scsi_proto.h | 1 +
 1 file changed, 1 insertion(+)
include/scsi/scsi_proto.h +1 -0
index 1df8efb0ee01..c36860111932 100644
@@ -236,6 +236,7 @@ struct scsi_varlen_cdb_hdr {
 #define UNIT_ATTENTION      0x06
 #define DATA_PROTECT        0x07
 #define BLANK_CHECK         0x08
+#define VENDOR_SPECIFIC     0x09
 #define COPY_ABORTED        0x0a
 #define ABORTED_COMMAND     0x0b
 #define VOLUME_OVERFLOW     0x0d
Signature · 1 line
2.12.3
Reviewed-by on v2 2/5
#3 lore raw

Re: [PATCH 2/5] scsi: Add VENDOR_SPECIFIC sense code definitions

Quoted 13 lines · Hannes Reinecke

Some older devices will return vendor specific sense codes, so we should be adding a definition for it.

---
 include/scsi/scsi_proto.h | 1 +
 1 file changed, 1 insertion(+)
include/scsi/scsi_proto.h +0 -0
index 1df8efb0ee01..c36860111932 100644

include/scsi/scsi_proto.h struct scsi_varlen_cdb_hdr { · line 242

Quoted 7 lines
include/scsi/scsi_proto.h +1 -0
@@ -236,6 +236,7 @@ struct scsi_varlen_cdb_hdr {
 #define UNIT_ATTENTION      0x06
 #define DATA_PROTECT        0x07
 #define BLANK_CHECK         0x08
+#define VENDOR_SPECIFIC     0x09
 #define COPY_ABORTED        0x0a
 #define ABORTED_COMMAND     0x0b
 #define VOLUME_OVERFLOW     0x0d
#4 lore raw

Re: [PATCH 2/5] scsi: Add VENDOR_SPECIFIC sense code definitions

In reply to Hannes Reinecke

Hannes,

Quoted 2 lines

Some older devices will return vendor specific sense codes, so we should be adding a definition for it.

Applied to 4.16/scsi-queue. Thanks!

Signature · 1 line
Martin K. Petersen	Oracle Linux Engineering
#5 lore raw

PATCH v2 3/5 myrb: Add Mylex RAID controller (block interface)

In reply to Hannes Reinecke

This patch adds support for the Mylex DAC960 RAID controller, supporting the older, block-based interface only.
The driver is a re-implementation of the original DAC960 driver.

---
 drivers/scsi/Kconfig  |   14 +
 drivers/scsi/Makefile |    1 +
 drivers/scsi/myrb.c   | 3249 +++++++++++++++++++++++++++++++++++++++++++++++++
 drivers/scsi/myrb.h   | 1891 ++++++++++++++++++++++++++++
 4 files changed, 5155 insertions(+)
 create mode 100644 drivers/scsi/myrb.c
 create mode 100644 drivers/scsi/myrb.h
drivers/scsi/Kconfig +14 -0
index 8a739b74cfb7..47a9c3a148d2 100644
@@ -556,6 +556,20 @@ config SCSI_FLASHPOINT
 	  substantial, so users of MultiMaster Host Adapters may not
 	  wish to include it.
 
+config SCSI_MYRB
+	tristate "Mylex DAC960/DAC1100 PCI RAID Controller (Block Interface)"
+	depends on PCI
+	help
+	  This driver adds support for the Mylex DAC960, AcceleRAID, and
+	  eXtremeRAID PCI RAID controllers. This driver supports the
+	  older, block based interface.
+	  This driver is a reimplementation of the original DAC960
+	  driver. If you have used the DAC960 driver you should enable
+	  this module.
+
+	  To compile this driver as a module, choose M here: the
+	  module will be called myrb.
+
 config VMWARE_PVSCSI
 	tristate "VMware PVSCSI driver support"
 	depends on PCI && SCSI && X86
drivers/scsi/Makefile +1 -0
index fcfd28d2884c..62466761c25e 100644
@@ -111,6 +111,7 @@ obj-$(CONFIG_SCSI_INIA100)	+= a100u2w.o
 obj-$(CONFIG_SCSI_QLOGICPTI)	+= qlogicpti.o
 obj-$(CONFIG_SCSI_MESH)		+= mesh.o
 obj-$(CONFIG_SCSI_MAC53C94)	+= mac53c94.o
+obj-$(CONFIG_SCSI_MYRB)		+= myrb.o
 obj-$(CONFIG_BLK_DEV_3W_XXXX_RAID) += 3w-xxxx.o
 obj-$(CONFIG_SCSI_3W_9XXX)	+= 3w-9xxx.o
 obj-$(CONFIG_SCSI_3W_SAS)	+= 3w-sas.o
drivers/scsi/myrb.c new file +3249 -0

2,973 lines not on this page · raw message

drivers/scsi/myrb.h new file +1891 -0

1,891 lines not on this page · raw message

The rest of this diff is not shown. View the raw message.

Signature · 1 line
2.12.3

Part of the diff is not shown here. View the raw message.

#6 lore raw

PATCH v2 4/5 myrs: Add Mylex RAID controller (SCSI interface)

In reply to Hannes Reinecke

This patch adds support for the Mylex DAC960 RAID controller, supporting the newer, SCSI-based interface.
The driver is a re-implementation of the original DAC960 driver.

---
 drivers/scsi/Kconfig  |   14 +
 drivers/scsi/Makefile |    1 +
 drivers/scsi/myrs.c   | 2947 +++++++++++++++++++++++++++++++++++++++++++++++++
 drivers/scsi/myrs.h   | 2042 ++++++++++++++++++++++++++++++++++
 4 files changed, 5004 insertions(+)
 create mode 100644 drivers/scsi/myrs.c
 create mode 100644 drivers/scsi/myrs.h
drivers/scsi/Kconfig +14 -0
index 47a9c3a148d2..6793cc9160db 100644
@@ -570,6 +570,20 @@ config SCSI_MYRB
 	  To compile this driver as a module, choose M here: the
 	  module will be called myrb.
 
+config SCSI_MYRS
+	tristate "Mylex DAC960/DAC1100 PCI RAID Controller (SCSI Interface)"
+	depends on PCI
+	help
+	  This driver adds support for the Mylex DAC960, AcceleRAID, and
+	  eXtremeRAID PCI RAID controllers.  This driver supports the
+	  newer, SCSI-based interface only.
+	  This driver is a reimplementation of the original DAC960
+	  driver. If you have used the DAC960 driver you should enable
+	  this module.
+
+	  To compile this driver as a module, choose M here: the
+	  module will be called myrs.
+
 config VMWARE_PVSCSI
 	tristate "VMware PVSCSI driver support"
 	depends on PCI && SCSI && X86
drivers/scsi/Makefile +1 -0
index 62466761c25e..18511d3823d5 100644
@@ -112,6 +112,7 @@ obj-$(CONFIG_SCSI_QLOGICPTI)	+= qlogicpti.o
 obj-$(CONFIG_SCSI_MESH)		+= mesh.o
 obj-$(CONFIG_SCSI_MAC53C94)	+= mac53c94.o
 obj-$(CONFIG_SCSI_MYRB)		+= myrb.o
+obj-$(CONFIG_SCSI_MYRS)		+= myrs.o
 obj-$(CONFIG_BLK_DEV_3W_XXXX_RAID) += 3w-xxxx.o
 obj-$(CONFIG_SCSI_3W_9XXX)	+= 3w-9xxx.o
 obj-$(CONFIG_SCSI_3W_SAS)	+= 3w-sas.o
drivers/scsi/myrs.c new file +2947 -0

2,947 lines not on this page · raw message

drivers/scsi/myrs.h new file +2042 -0

26 lines not on this page · raw message

The rest of this diff is not shown. View the raw message.

Signature · 1 line
2.12.3

Part of the diff is not shown here. View the raw message.