Skip to contentSkip to conversation

: Add support for UNIT_ATTENTION with SPC-3 PR

PATCH New Nicholas A. Bellinger 1 participant 1 message Mar 25, 2009 SCSI

lore
Share & tools
lore
#0 lore raw

cover : Add support for UNIT_ATTENTION with SPC-3 PR

Greetings all,

This patch adds support for SAM4/SPC4 compliant UNIT_ATTENTION with ua_intlck_ctrl control mode page value 00b, 10b and 11b. The default has been set to 0 in configfs, which is to clear the UNIT ATTENTION with a CHECK_CONDITION+Sense data with a corresponding ASC+ASCQ. Currently, Linux/SCSI midlayer clients require a manual sg_request to clear the UNIT ATTENTION with a REQUEST_SENSE for modes 10b and 11b. These values can be changed (without active $FABRIC_MOD target ports) for a given target_core_mod storage object with ConfigFS via /sys/kernel/config/target/core/$HBA/$DEV/attrib/emulated_ua_intlck_ctrl. The echoed values for the attribute into ConfigFS are 0, 1, and 2 respectively for the interlock codes 00b, 10b, and 11b.

These patches are made against lio-core-2.6.git/master and tested on v2.6.29 x86 32-bit HVM using sg_persist from sg3_utils. The lio-core-2.6.git tree can be found at:

http://git.kernel.org/?p=linux/kernel/git/nab/lio-core-2.6.git;a=summary

Subject: [PATCH 1/2] [Target_Core_Mod]: Add support for UNIT_ATTENTION conditions
Subject: [PATCH 2/2] [Target_Core_Mod/Persistent_Reservations]: Add UNIT ATTENTION support for PROUT SAs

 drivers/lio-core/Makefile                |    1 +
 drivers/lio-core/target_core_base.h      |   13 ++
 drivers/lio-core/target_core_configfs.c  |    4 +
 drivers/lio-core/target_core_device.c    |   27 +++-
 drivers/lio-core/target_core_device.h    |    1 +
 drivers/lio-core/target_core_pr.c        |  107 +++++++++-
 drivers/lio-core/target_core_tpg.c       |   10 +
 drivers/lio-core/target_core_transport.c |  127 ++++++++++--
 drivers/lio-core/target_core_transport.h |    2 +
 drivers/lio-core/target_core_ua.c        |  333 ++++++++++++++++++++++++++++++
 drivers/lio-core/target_core_ua.h        |   36 ++++
 11 files changed, 632 insertions(+), 29 deletions(-)