From: <vl...@us...> - 2008-07-10 10:49:13
|
Revision: 453 http://scst.svn.sourceforge.net/scst/?rev=453&view=rev Author: vlnb Date: 2008-07-10 03:49:06 -0700 (Thu, 10 Jul 2008) Log Message: ----------- Apparently the SCST code with debugging and/or tracing enabled compiles fine as an external module. When applying the SCST kernel patch to the mainstream kernel tree with debugging and/or tracing enabled however, the resulting code triggers a compiler error. This is because the symbols DEBUG and TRACING conflict with symbols with the same named defined in unrelated kernel headers. The patch below resolves these conflicts by renaming the following preprocessor symbols: - DEBUG into CONFIG_SCST_DEBUG. - DEBUG_DIGEST_FAILURES into CONFIG_SCST_ISCSI_DEBUG_DIGEST_FAILURES. - DEBUG_OOM into CONFIG_SCST_DEBUG_OOM. - DEBUG_RETRY into CONFIG_SCST_DEBUG_RETRY. - DEBUG_SN into CONFIG_SCST_DEBUG_SN. - DEBUG_TM into CONFIG_SCST_DEBUG_TM. - EXTRACHECKS into CONFIG_SCST_EXTRACHECKS. - SCST_HIGHMEM into CONFIG_SCST_HIGHMEM. - STRICT_SERIALIZING into CONFIG_SCST_STRICT_SERIALIZING. - TM_DBG_GO_OFFLINE into CONFIG_SCST_TM_DBG_GO_OFFLINE. Mapped 0/1 values into macro undefined / macro defined. - TRACING into CONFIG_SCST_TRACING. - USE_EXPECTED_VALUES into CONFIG_SCST_USE_EXPECTED_VALUES. - In qla_isp/linux/isp_scst.c, renamed DEBUG into DEBUG_ISP_SCST. - In qla_isp/..., renamed SCSI_TARGET in SCST_SCSI_TARGET. - In qla_isp/..., renamed SCSI_TARGET_DEV in SCST_SCSI_TARGET_DEV. Additionally, all CONFIG_SCSI_TARGET* macro's are renamed into CONFIG_SCST* in order to avoid confusion between the STGT CONFIG-symbols and the SCST CONFIG- symbols. The following additional options are now configurable through Kconfig: - CONFIG_SCST_ISCSI_DEBUG_DIGEST_FAILURES - CONFIG_SCST_STRICT_SERIALIZING - CONFIG_SCST_STRICT_SECURITY - CONFIG_SCST_ALLOW_PASSTHROUGH_IO_SUBMIT_IN_SIRQ - CONFIG_SCST_ABORT_CONSIDER_FINISHED_TASKS_AS_NOT_EXISTING - CONFIG_SCST_USE_EXPECTED_VALUES - CONFIG_SCST_DEBUG_OOM - CONFIG_SCST_DEBUG_RETRY - CONFIG_SCST_DEBUG_SN - CONFIG_SCST_DEBUG_TM - CONFIG_SCST_TM_DBG_GO_OFFLINE The patch below has been verified as follows: - Verified that the following command does not print any new warning messages: make -s clean && make -C srpt -s clean && make -s scst iscsi-scst && make -C srpt -s - Verified as follows that the internal SCST patches still apply cleanly: for p in *patch; do patch -p0 --dry-run -f -s <$p; done - Checked that the patch generated by generate-kernel-patch still applies cleanly to the 2.6.25.7 kernel, and that the patched kernel tree still compiles, installs and boots fine, that the iscsi-scst, ib_srpt, scst_disk and scst_vdisk modules still load, and that iSCSI communication still works fine. All SCST kernel configuration options that could be enabled have been enabled during this test. Signed-off-by: Bart Van Assche <bar...@gm...> Modified Paths: -------------- trunk/iscsi-full_perf.patch trunk/iscsi-release.patch trunk/iscsi-scst/README trunk/iscsi-scst/kernel/Kconfig trunk/iscsi-scst/kernel/Makefile trunk/iscsi-scst/kernel/config.c trunk/iscsi-scst/kernel/conn.c trunk/iscsi-scst/kernel/digest.c trunk/iscsi-scst/kernel/iscsi.c trunk/iscsi-scst/kernel/iscsi.h trunk/iscsi-scst/kernel/iscsi_dbg.h trunk/iscsi-scst/kernel/nthread.c trunk/mpt/Makefile trunk/mpt/in-tree/Makefile trunk/mpt/mpt_scst.c trunk/qla2x00t/qla2x00-target/Makefile trunk/qla2x00t/qla2x00-target/README trunk/qla2x00t/qla2x00-target/qla2x00t.c trunk/qla2x00t/qla2x00-target/qla2x00t.h trunk/qla2x00t-full_perf.patch trunk/qla2x00t-release.patch trunk/scst/ChangeLog trunk/scst/README trunk/scst/ToDo trunk/scst/include/scst.h trunk/scst/include/scst_debug.h trunk/scst/kernel/in-tree/Kconfig.scst trunk/scst/kernel/in-tree/Makefile.dev_handlers trunk/scst/kernel/in-tree/Makefile.drivers.Linux-2.6.15.patch trunk/scst/kernel/in-tree/Makefile.drivers.Linux-2.6.24.patch trunk/scst/kernel/in-tree/Makefile.drivers.Linux-2.6.25.patch trunk/scst/kernel/in-tree/Makefile.drivers.Linux-2.6.7.patch trunk/scst/kernel/in-tree/Makefile.scst trunk/scst/src/Makefile trunk/scst/src/dev_handlers/Makefile trunk/scst/src/dev_handlers/scst_dev_handler.h trunk/scst/src/dev_handlers/scst_user.c trunk/scst/src/dev_handlers/scst_vdisk.c trunk/scst/src/scst_debug.c trunk/scst/src/scst_lib.c trunk/scst/src/scst_main.c trunk/scst/src/scst_mem.c trunk/scst/src/scst_mem.h trunk/scst/src/scst_priv.h trunk/scst/src/scst_proc.c trunk/scst/src/scst_targ.c trunk/scst-full_perf.patch trunk/scst-release.patch trunk/srpt/src/Makefile Modified: trunk/iscsi-full_perf.patch =================================================================== --- trunk/iscsi-full_perf.patch 2008-07-10 07:05:47 UTC (rev 452) +++ trunk/iscsi-full_perf.patch 2008-07-10 10:49:06 UTC (rev 453) @@ -6,11 +6,11 @@ EXTRA_CFLAGS += -I$(src)/../include -I$(SCST_INC_DIR) # -Wextra -Wno-unused-parameter --EXTRA_CFLAGS += -DEXTRACHECKS -+#EXTRA_CFLAGS += -DEXTRACHECKS - #EXTRA_CFLAGS += -DTRACING --EXTRA_CFLAGS += -DDEBUG -g -+#EXTRA_CFLAGS += -DDEBUG -g +-EXTRA_CFLAGS += -DCONFIG_SCST_EXTRACHECKS ++#EXTRA_CFLAGS += -DCONFIG_SCST_EXTRACHECKS + #EXTRA_CFLAGS += -DCONFIG_SCST_TRACING +-EXTRA_CFLAGS += -DCONFIG_SCST_DEBUG -g ++#EXTRA_CFLAGS += -DCONFIG_SCST_DEBUG -g - #EXTRA_CFLAGS += -DDEBUG_DIGEST_FAILURES + #EXTRA_CFLAGS += -DCONFIG_SCST_ISCSI_DEBUG_DIGEST_FAILURES Modified: trunk/iscsi-release.patch =================================================================== --- trunk/iscsi-release.patch 2008-07-10 07:05:47 UTC (rev 452) +++ trunk/iscsi-release.patch 2008-07-10 10:49:06 UTC (rev 453) @@ -6,12 +6,12 @@ EXTRA_CFLAGS += -I$(src)/../include -I$(SCST_INC_DIR) # -Wextra -Wno-unused-parameter --EXTRA_CFLAGS += -DEXTRACHECKS --#EXTRA_CFLAGS += -DTRACING --EXTRA_CFLAGS += -DDEBUG -g -+#EXTRA_CFLAGS += -DEXTRACHECKS -+EXTRA_CFLAGS += -DTRACING -+#EXTRA_CFLAGS += -DDEBUG -g +-EXTRA_CFLAGS += -DCONFIG_SCST_EXTRACHECKS +-#EXTRA_CFLAGS += -DCONFIG_SCST_TRACING +-EXTRA_CFLAGS += -DCONFIG_SCST_DEBUG -g ++#EXTRA_CFLAGS += -DCONFIG_SCST_EXTRACHECKS ++EXTRA_CFLAGS += -DCONFIG_SCST_TRACING ++#EXTRA_CFLAGS += -DCONFIG_SCST_DEBUG -g - #EXTRA_CFLAGS += -DDEBUG_DIGEST_FAILURES + #EXTRA_CFLAGS += -DCONFIG_SCST_ISCSI_DEBUG_DIGEST_FAILURES Modified: trunk/iscsi-scst/README =================================================================== --- trunk/iscsi-scst/README 2008-07-10 07:05:47 UTC (rev 452) +++ trunk/iscsi-scst/README 2008-07-10 10:49:06 UTC (rev 453) @@ -162,16 +162,17 @@ There are the following compilation options, that could be commented in/out in the kernel's module Makefile: - - DEBUG - turns on some debugging code, including some logging. Makes - the driver considerably bigger and slower, producing large amount of + - CONFIG_SCST_DEBUG - turns on some debugging code, including some logging. + Makes the driver considerably bigger and slower, producing large amount of log data. - - TRACING - turns on ability to log events. Makes the driver considerably - bigger and lead to some performance loss. + - CONFIG_SCST_TRACING - turns on ability to log events. Makes the driver + considerably bigger and leads to some performance loss. - - EXTRACHECKS - adds extra validity checks in the various places. + - CONFIG_SCST_EXTRACHECKS - adds extra validity checks in the various places. - - DEBUG_DIGEST_FAILURES - simulates digest failures in random places. + - CONFIG_SCST_ISCSI_DEBUG_DIGEST_FAILURES - simulates digest failures in + random places. Creating version of put_page_callback patch for your kernel ----------------------------------------------------------- Modified: trunk/iscsi-scst/kernel/Kconfig =================================================================== --- trunk/iscsi-scst/kernel/Kconfig 2008-07-10 07:05:47 UTC (rev 452) +++ trunk/iscsi-scst/kernel/Kconfig 2008-07-10 10:49:06 UTC (rev 453) @@ -1,5 +1,22 @@ config SCST_ISCSI tristate "SCST iSCSI Support" depends on SCSI - ---help--- - iSCSI target support. The iSCSI protocol has been defined in RFC 3720. + help + iSCSI target support. The iSCSI protocol has been defined in + RFC 3720. + +config SCST_ISCSI_DEBUG_DIGEST_FAILURES + bool "Simulate iSCSI digest failures" + depends on SCST_ISCSI + help + Simulates iSCSI digest failures in random places. Even when iSCSI + traffic is sent over a TCP connection, the 16-bit TCP checksum is too + weak for the requirements of a storage protocol. Furthermore, there + are also instances where the TCP checksum does not protect iSCSI + data, as when data is corrupted while being transferred on a PCI bus + or while in memory. The iSCSI protocol therefore defines a 32-bit CRC + digest on iSCSI packets in order to detect data corruption on an + end-to-end basis. CRCs can be used on iSCSI PDU headers and/or data. + Enabling this option allows to test digest failure recovery in the + iSCSI initiator that is talking to SCST. If unsure, disable this + option. Modified: trunk/iscsi-scst/kernel/Makefile =================================================================== --- trunk/iscsi-scst/kernel/Makefile 2008-07-10 07:05:47 UTC (rev 452) +++ trunk/iscsi-scst/kernel/Makefile 2008-07-10 10:49:06 UTC (rev 453) @@ -23,11 +23,11 @@ EXTRA_CFLAGS += -I$(src)/../include -I$(SCST_INC_DIR) # -Wextra -Wno-unused-parameter -EXTRA_CFLAGS += -DEXTRACHECKS -#EXTRA_CFLAGS += -DTRACING -EXTRA_CFLAGS += -DDEBUG -g +EXTRA_CFLAGS += -DCONFIG_SCST_EXTRACHECKS +#EXTRA_CFLAGS += -DCONFIG_SCST_TRACING +EXTRA_CFLAGS += -DCONFIG_SCST_DEBUG -g -#EXTRA_CFLAGS += -DDEBUG_DIGEST_FAILURES +#EXTRA_CFLAGS += -DCONFIG_SCST_ISCSI_DEBUG_DIGEST_FAILURES obj-m += iscsi-scst.o iscsi-scst-objs := iscsi.o nthread.o config.o digest.o \ Modified: trunk/iscsi-scst/kernel/config.c =================================================================== --- trunk/iscsi-scst/kernel/config.c 2008-07-10 07:05:47 UTC (rev 452) +++ trunk/iscsi-scst/kernel/config.c 2008-07-10 10:49:06 UTC (rev 453) @@ -19,7 +19,7 @@ #define ISCSI_PROC_VERSION_NAME "version" -#if defined(DEBUG) || defined(TRACING) +#if defined(CONFIG_SCST_DEBUG) || defined(CONFIG_SCST_TRACING) #define ISCSI_PROC_LOG_ENTRY_NAME "trace_level" @@ -71,19 +71,19 @@ seq_printf(seq, "%s\n", ISCSI_VERSION_STRING); -#ifdef EXTRACHECKS +#ifdef CONFIG_SCST_EXTRACHECKS seq_printf(seq, "EXTRACHECKS\n"); #endif -#ifdef TRACING +#ifdef CONFIG_SCST_TRACING seq_printf(seq, "TRACING\n"); #endif -#ifdef DEBUG +#ifdef CONFIG_SCST_DEBUG seq_printf(seq, "DEBUG\n"); #endif -#ifdef DEBUG_DIGEST_FAILURES +#ifdef CONFIG_SCST_ISCSI_DEBUG_DIGEST_FAILURES seq_printf(seq, "DEBUG_DIGEST_FAILURES\n"); #endif @@ -96,7 +96,7 @@ .show = iscsi_version_info_show, }; -#if defined(DEBUG) || defined(TRACING) +#if defined(CONFIG_SCST_DEBUG) || defined(CONFIG_SCST_TRACING) static struct scst_proc_data iscsi_log_proc_data = { SCST_DEF_RW_SEQ_OP(iscsi_proc_log_entry_write) .show = iscsi_log_info_show, @@ -122,7 +122,7 @@ goto out; } -#if defined(DEBUG) || defined(TRACING) +#if defined(CONFIG_SCST_DEBUG) || defined(CONFIG_SCST_TRACING) /* create the proc file entry for the device */ iscsi_log_proc_data.data = (void *)templ->name; p = scst_create_proc_entry(root, ISCSI_PROC_LOG_ENTRY_NAME, @@ -141,7 +141,7 @@ TRACE_EXIT_RES(res); return res; -#if defined(DEBUG) || defined(TRACING) +#if defined(CONFIG_SCST_DEBUG) || defined(CONFIG_SCST_TRACING) out_remove_ver: remove_proc_entry(ISCSI_PROC_VERSION_NAME, root); goto out; @@ -156,7 +156,7 @@ root = scst_proc_get_tgt_root(templ); if (root) { -#if defined(DEBUG) || defined(TRACING) +#if defined(CONFIG_SCST_DEBUG) || defined(CONFIG_SCST_TRACING) remove_proc_entry(ISCSI_PROC_LOG_ENTRY_NAME, root); #endif remove_proc_entry(ISCSI_PROC_VERSION_NAME, root); @@ -540,7 +540,7 @@ .release = release, }; -#ifdef DEBUG +#ifdef CONFIG_SCST_DEBUG void iscsi_dump_iov(struct msghdr *msg) { if (trace_flag & TRACE_D_IOV) { @@ -604,4 +604,4 @@ printk("Data: (%d)\n", pdu->datasize); } } -#endif /* DEBUG */ +#endif /* CONFIG_SCST_DEBUG */ Modified: trunk/iscsi-scst/kernel/conn.c =================================================================== --- trunk/iscsi-scst/kernel/conn.c 2008-07-10 07:05:47 UTC (rev 452) +++ trunk/iscsi-scst/kernel/conn.c 2008-07-10 10:49:06 UTC (rev 453) @@ -447,7 +447,7 @@ return 0; } -#ifdef EXTRACHECKS +#ifdef CONFIG_SCST_EXTRACHECKS void iscsi_extracheck_is_rd_thread(struct iscsi_conn *conn) { @@ -477,4 +477,4 @@ } } -#endif /* EXTRACHECKS */ +#endif /* CONFIG_SCST_EXTRACHECKS */ Modified: trunk/iscsi-scst/kernel/digest.c =================================================================== --- trunk/iscsi-scst/kernel/digest.c 2008-07-10 07:05:47 UTC (rev 452) +++ trunk/iscsi-scst/kernel/digest.c 2008-07-10 10:49:06 UTC (rev 453) @@ -61,7 +61,7 @@ { u32 crc = ~0; -#ifdef DEBUG_DIGEST_FAILURES +#ifdef CONFIG_SCST_ISCSI_DEBUG_DIGEST_FAILURES if (((scst_random() % 100000) == 752)) { PRINT_INFO("%s", "Simulating digest failure"); return 0; Modified: trunk/iscsi-scst/kernel/iscsi.c =================================================================== --- trunk/iscsi-scst/kernel/iscsi.c 2008-07-10 07:05:47 UTC (rev 452) +++ trunk/iscsi-scst/kernel/iscsi.c 2008-07-10 10:49:06 UTC (rev 453) @@ -36,7 +36,7 @@ static char ctr_name[] = "iscsi-scst-ctl"; static int iscsi_template_registered; -#if defined(DEBUG) || defined(TRACING) +#if defined(CONFIG_SCST_DEBUG) || defined(CONFIG_SCST_TRACING) unsigned long iscsi_trace_flag = ISCSI_DEFAULT_LOG_FLAGS; #endif @@ -276,7 +276,7 @@ if (cmnd->own_sg) { TRACE_DBG("%s", "own_sg"); scst_free(cmnd->sg, cmnd->sg_cnt); -#ifdef DEBUG +#ifdef CONFIG_SCST_DEBUG cmnd->own_sg = 0; cmnd->sg = NULL; cmnd->sg_cnt = -1; @@ -289,7 +289,7 @@ "new value %d)", cmnd, sess, atomic_read(&sess->active_cmds)-1); atomic_dec(&sess->active_cmds); -#ifdef EXTRACHECKS +#ifdef CONFIG_SCST_EXTRACHECKS if (unlikely(atomic_read(&sess->active_cmds) < 0)) { PRINT_CRIT_ERROR("active_cmds < 0 (%d)!!", atomic_read(&sess->active_cmds)); @@ -392,7 +392,7 @@ TRACE_DBG("%p", req); -#ifdef EXTRACHECKS +#ifdef CONFIG_SCST_EXTRACHECKS sBUG_ON(req->release_called); req->release_called = 1; #endif @@ -420,7 +420,7 @@ atomic_read(&sess->active_cmds)-1); atomic_dec(&sess->active_cmds); req->dec_active_cmnds = 0; -#ifdef EXTRACHECKS +#ifdef CONFIG_SCST_EXTRACHECKS if (unlikely(atomic_read(&sess->active_cmds) < 0)) { PRINT_CRIT_ERROR("active_cmds < 0 (%d)!!", atomic_read(&sess->active_cmds)); @@ -443,7 +443,7 @@ { TRACE_DBG("%p", cmnd); -#ifdef EXTRACHECKS +#ifdef CONFIG_SCST_EXTRACHECKS sBUG_ON(cmnd->release_called); cmnd->release_called = 1; #endif @@ -2507,7 +2507,7 @@ list_del(&conn->wr_list_entry); /* go through */ case ISCSI_CONN_WR_STATE_IDLE: -#ifdef EXTRACHECKS +#ifdef CONFIG_SCST_EXTRACHECKS conn->wr_task = current; #endif conn->wr_state = ISCSI_CONN_WR_STATE_PROCESSING; @@ -2529,7 +2529,7 @@ } spin_lock_bh(&iscsi_wr_lock); -#ifdef EXTRACHECKS +#ifdef CONFIG_SCST_EXTRACHECKS conn->wr_task = NULL; #endif if ((rc <= 0) || test_write_ready(conn)) { @@ -2661,7 +2661,7 @@ } iscsi_cmnd_init_write(rsp, ISCSI_INIT_WRITE_REMOVE_HASH); } -#ifdef EXTRACHECKS +#ifdef CONFIG_SCST_EXTRACHECKS else sBUG(); #endif Modified: trunk/iscsi-scst/kernel/iscsi.h =================================================================== --- trunk/iscsi-scst/kernel/iscsi.h 2008-07-10 07:05:47 UTC (rev 452) +++ trunk/iscsi-scst/kernel/iscsi.h 2008-07-10 10:49:06 UTC (rev 453) @@ -160,7 +160,7 @@ struct list_head wr_list_entry; -#ifdef EXTRACHECKS +#ifdef CONFIG_SCST_EXTRACHECKS struct task_struct *wr_task; #endif @@ -195,7 +195,7 @@ struct list_head rd_list_entry; -#ifdef EXTRACHECKS +#ifdef CONFIG_SCST_EXTRACHECKS struct task_struct *rd_task; #endif @@ -258,7 +258,7 @@ unsigned int ddigest_checked:1; unsigned int rejected:1; unsigned int reject_reason:2; -#ifdef EXTRACHECKS +#ifdef CONFIG_SCST_EXTRACHECKS unsigned int on_rx_digest_list:1; unsigned int release_called:1; #endif @@ -498,7 +498,7 @@ "of req %p", cmnd, req); list_add_tail(&cmnd->rx_ddigest_cmd_list_entry, &req->rx_ddigest_cmd_list); -#ifdef EXTRACHECKS +#ifdef CONFIG_SCST_EXTRACHECKS cmnd->on_rx_digest_list = 1; #endif } @@ -507,7 +507,7 @@ { TRACE_DBG("Deleting RX digest cmd %p from digest list", cmnd); list_del(&cmnd->rx_ddigest_cmd_list_entry); -#ifdef EXTRACHECKS +#ifdef CONFIG_SCST_EXTRACHECKS cmnd->on_rx_digest_list = 0; #endif } @@ -548,7 +548,7 @@ atomic_dec(&conn->conn_ref_cnt); } -#ifdef EXTRACHECKS +#ifdef CONFIG_SCST_EXTRACHECKS extern void iscsi_extracheck_is_rd_thread(struct iscsi_conn *conn); extern void iscsi_extracheck_is_wr_thread(struct iscsi_conn *conn); #else Modified: trunk/iscsi-scst/kernel/iscsi_dbg.h =================================================================== --- trunk/iscsi-scst/kernel/iscsi_dbg.h 2008-07-10 07:05:47 UTC (rev 452) +++ trunk/iscsi-scst/kernel/iscsi_dbg.h 2008-07-10 10:49:06 UTC (rev 453) @@ -32,7 +32,7 @@ #define TRACE_ALL_NO_DATA (TRACE_ALL & ~TRACE_D_IOV & ~TRACE_D_DUMP_PDU & ~TRACE_D_DATA) -#ifdef DEBUG +#ifdef CONFIG_SCST_DEBUG #define ISCSI_DEFAULT_LOG_FLAGS (TRACE_FUNCTION | TRACE_LINE | TRACE_PID | \ TRACE_OUT_OF_MEM | TRACE_MGMT | TRACE_MGMT_MINOR | TRACE_MGMT_DEBUG | \ TRACE_MINOR | TRACE_SPECIAL | TRACE_CONN_OC) @@ -41,7 +41,7 @@ TRACE_MINOR | TRACE_SPECIAL) #endif -#ifdef DEBUG +#ifdef CONFIG_SCST_DEBUG struct msghdr; struct iscsi_pdu; extern void iscsi_dump_iov(struct msghdr *msg); @@ -51,12 +51,12 @@ #define iscsi_dump_pdu(x) do {} while (0) #endif -#if defined(DEBUG) || defined(TRACING) +#if defined(CONFIG_SCST_DEBUG) || defined(CONFIG_SCST_TRACING) extern unsigned long iscsi_trace_flag; #define trace_flag iscsi_trace_flag #endif -#ifdef DEBUG +#ifdef CONFIG_SCST_DEBUG #define TRACE_CONN_CLOSE(args...) TRACE(TRACE_CONN_OC, args) #define TRACE_CONN_CLOSE_DBG(args...) TRACE(TRACE_CONN_OC_DBG, args) @@ -64,7 +64,7 @@ #define TRACE_WRITE(args...) TRACE(TRACE_D_WRITE, args) #define TRACE_READ(args...) TRACE(TRACE_D_READ, args) -#else /* DEBUG */ +#else /* CONFIG_SCST_DEBUG */ #define TRACE_CONN_CLOSE(format, args...) {} #define TRACE_CONN_CLOSE_DBG(format, args...) {} #define TRACE_NET_PAGE(format, args...) {} Modified: trunk/iscsi-scst/kernel/nthread.c =================================================================== --- trunk/iscsi-scst/kernel/nthread.c 2008-07-10 07:05:47 UTC (rev 452) +++ trunk/iscsi-scst/kernel/nthread.c 2008-07-10 10:49:06 UTC (rev 453) @@ -365,7 +365,7 @@ TRACE_CONN_CLOSE_DBG("conn %p, conn_ref_cnt %d left, wr_state %d, " "exp_cmd_sn %u", conn, atomic_read(&conn->conn_ref_cnt), conn->wr_state, session->exp_cmd_sn); -#ifdef DEBUG +#ifdef CONFIG_SCST_DEBUG { #ifdef NET_PAGE_CALLBACKS_DEFINED struct iscsi_cmnd *rsp; @@ -467,7 +467,7 @@ TRACE_ENTRY(); -#ifdef EXTRACHECKS +#ifdef CONFIG_SCST_EXTRACHECKS conn->rd_task = current; #endif close_conn(conn); @@ -782,7 +782,7 @@ sBUG_ON(conn->rd_state == ISCSI_CONN_RD_STATE_PROCESSING); conn->rd_data_ready = 0; conn->rd_state = ISCSI_CONN_RD_STATE_PROCESSING; -#ifdef EXTRACHECKS +#ifdef CONFIG_SCST_EXTRACHECKS conn->rd_task = current; #endif spin_unlock_bh(&iscsi_rd_lock); @@ -794,7 +794,7 @@ if (closed) continue; -#ifdef EXTRACHECKS +#ifdef CONFIG_SCST_EXTRACHECKS conn->rd_task = NULL; #endif if ((rc == 0) || conn->rd_data_ready) { @@ -1165,7 +1165,7 @@ /* else go through */ out_err: -#ifndef DEBUG +#ifndef CONFIG_SCST_DEBUG if (!conn->closing) #endif { @@ -1189,7 +1189,7 @@ res = 0; break; default: -#ifndef DEBUG +#ifndef CONFIG_SCST_DEBUG if (!conn->closing) #endif { @@ -1379,7 +1379,7 @@ conn->wr_state = ISCSI_CONN_WR_STATE_PROCESSING; conn->wr_space_ready = 0; -#ifdef EXTRACHECKS +#ifdef CONFIG_SCST_EXTRACHECKS conn->wr_task = current; #endif spin_unlock_bh(&iscsi_wr_lock); @@ -1389,7 +1389,7 @@ rc = process_write_queue(conn); spin_lock_bh(&iscsi_wr_lock); -#ifdef EXTRACHECKS +#ifdef CONFIG_SCST_EXTRACHECKS conn->wr_task = NULL; #endif if ((rc == -EAGAIN) && !conn->wr_space_ready) { Modified: trunk/mpt/Makefile =================================================================== --- trunk/mpt/Makefile 2008-07-10 07:05:47 UTC (rev 452) +++ trunk/mpt/Makefile 2008-07-10 10:49:06 UTC (rev 453) @@ -29,9 +29,9 @@ EXTRA_CFLAGS += -I$(SCST_INC_DIR) -I$(FUSION_INC_DIR) -Iinclude/scsi -EXTRA_CFLAGS += -DEXTRACHECKS -#EXTRA_CFLAGS += -DTRACING -EXTRA_CFLAGS += -DDEBUG +EXTRA_CFLAGS += -DCONFIG_SCST_EXTRACHECKS +#EXTRA_CFLAGS += -DCONFIG_SCST_TRACING +EXTRA_CFLAGS += -DCONFIG_SCST_DEBUG #EXTRA_CFLAGS += -DDEBUG_WORK_IN_THREAD ifeq ($(KVER),) Modified: trunk/mpt/in-tree/Makefile =================================================================== --- trunk/mpt/in-tree/Makefile 2008-07-10 07:05:47 UTC (rev 452) +++ trunk/mpt/in-tree/Makefile 2008-07-10 10:49:06 UTC (rev 453) @@ -2,9 +2,9 @@ FUSION_INC_DIR := drivers/message/fusion EXTRA_CFLAGS += -I$(SCST_INC_DIR) -I$(FUSION_INC_DIR) -Iinclude/scsi -EXTRA_CFLAGS += -DEXTRACHECKS -#EXTRA_CFLAGS += -DTRACING -EXTRA_CFLAGS += -DDEBUG +EXTRA_CFLAGS += -DCONFIG_SCST_EXTRACHECKS +#EXTRA_CFLAGS += -DCONFIG_SCST_TRACING +EXTRA_CFLAGS += -DCONFIG_SCST_DEBUG #EXTRA_CFLAGS += -DDEBUG_WORK_IN_THREAD obj-$(CONFIG_FUSION_SCST) += mpt_scst.o Modified: trunk/mpt/mpt_scst.c =================================================================== --- trunk/mpt/mpt_scst.c 2008-07-10 07:05:47 UTC (rev 452) +++ trunk/mpt/mpt_scst.c 2008-07-10 10:49:06 UTC (rev 453) @@ -44,14 +44,14 @@ #define MYNAM "mpt_scst" -#ifdef TRACING +#ifdef CONFIG_SCST_TRACING static int trace_mpi = 0; #define TRACE_MPI 0x80000000 #endif -#ifdef DEBUG +#ifdef CONFIG_SCST_DEBUG static char *mpt_state_string[] = { "0", "new", @@ -63,12 +63,12 @@ }; #endif -#ifdef DEBUG +#ifdef CONFIG_SCST_DEBUG #define SCST_DEFAULT_MPT_LOG_FLAGS (TRACE_FUNCTION | TRACE_PID | \ TRACE_OUT_OF_MEM | TRACE_MGMT | TRACE_MGMT_MINOR | \ TRACE_MGMT_DEBUG | TRACE_MINOR | TRACE_SPECIAL) #else -# ifdef TRACING +# ifdef CONFIG_SCST_TRACING #define SCST_DEFAULT_MPT_LOG_FLAGS (TRACE_FUNCTION | TRACE_PID | \ TRACE_OUT_OF_MEM | TRACE_MGMT | TRACE_MINOR | TRACE_SPECIAL) # endif @@ -126,11 +126,11 @@ u32 offset, LinkServiceBufferPostReply_t *rep, int index); static void stm_set_scsi_port_page1(MPT_STM_PRIV *priv, int sleep); -#ifdef DEBUG +#ifdef CONFIG_SCST_DEBUG #define trace_flag mpt_trace_flag unsigned long mpt_trace_flag = TRACE_FUNCTION | TRACE_OUT_OF_MEM | TRACE_SPECIAL; #else -# ifdef TRACING +# ifdef CONFIG_SCST_TRACING #define trace_flag mpt_trace_flag unsigned long mpt_trace_flag = TRACE_OUT_OF_MEM | TRACE_MGMT | TRACE_SPECIAL; # endif @@ -475,7 +475,7 @@ CMD *cmd; struct scst_cmd *scst_cmd; struct mpt_sess *sess = mpt_cmd->sess; -#ifdef DEBUG +#ifdef CONFIG_SCST_DEBUG MPT_ADAPTER *ioc = priv->ioc; #endif /* @@ -1300,7 +1300,7 @@ cpu_to_le32(MPI_SGE_SET_FLAGS(MPI_SGE_FLAGS_LAST_ELEMENT | MPI_SGE_FLAGS_END_OF_BUFFER | MPI_SGE_FLAGS_END_OF_LIST)); -#ifdef TRACING +#ifdef CONFIG_SCST_TRACING if(trace_mpi) { u32 *p = (u32 *)req; @@ -2793,7 +2793,7 @@ } } -#ifdef TRACING +#ifdef CONFIG_SCST_TRACING if(trace_mpi) { u32 *p = (u32 *)rep; @@ -2900,7 +2900,7 @@ priv->io_state[index] |= IO_STATE_POSTED; -#ifdef TRACING +#ifdef CONFIG_SCST_TRACING if(trace_mpi) { u32 *p = (u32 *)req; int i; @@ -2958,7 +2958,7 @@ } } -#ifdef TRACING +#ifdef CONFIG_SCST_TRACING if(trace_mpi) { u32 *p = (u32 *)req; @@ -2995,7 +2995,7 @@ priv->io_state[index] |= IO_STATE_POSTED; -#ifdef TRACING +#ifdef CONFIG_SCST_TRACING if(trace_mpi) { u32 *p = (u32 *)req; @@ -3046,7 +3046,7 @@ ((u8 *)priv->hw->fc_link_serv_buf[index].fc_els - (u8 *)priv->hw); stm_set_dma_addr(sge_simple->Address, dma_addr); -#ifdef TRACING +#ifdef CONFIG_SCST_TRACING if(trace_mpi) { u32 *p = (u32 *)req; @@ -3212,7 +3212,7 @@ } priv->io_state[index] |= IO_STATE_STATUS_SENT; -#ifdef TRACING +#ifdef CONFIG_SCST_TRACING if(trace_mpi) { u32 *p = (u32 *)req; @@ -3269,7 +3269,7 @@ p_index = (int *)(sge_simple + 1); *p_index = index; -#ifdef TRACING +#ifdef CONFIG_SCST_TRACING if(trace_mpi) { u32 *p = (u32 *)req; @@ -3406,7 +3406,7 @@ static int stm_target_mode_abort(MPT_STM_PRIV *priv) { -#ifdef DEBUG +#ifdef CONFIG_SCST_DEBUG MPT_ADAPTER *ioc = priv->ioc; #endif int i; @@ -3794,7 +3794,7 @@ stm_scsi_configuration(MPT_STM_PRIV *priv, int sleep) { -#ifdef DEBUG +#ifdef CONFIG_SCST_DEBUG MPT_ADAPTER *ioc = priv->ioc; #endif SCSIPortPage0_t *ScsiPort0; @@ -3875,7 +3875,7 @@ static void stm_set_scsi_port_page1(MPT_STM_PRIV *priv, int sleep) { -#ifdef DEBUG +#ifdef CONFIG_SCST_DEBUG MPT_ADAPTER *ioc = priv->ioc; #endif SCSIPortPage1_t *ScsiPort1; @@ -4268,7 +4268,7 @@ return (-1); } -#ifdef TRACING +#ifdef CONFIG_SCST_TRACING if(trace_mpi) { u32 *p = (u32 *)priv->hw->config_buf; @@ -4375,7 +4375,7 @@ return (-1); } -#ifdef TRACING +#ifdef CONFIG_SCST_TRACING if(trace_mpi) { u32 *p = (u32 *)priv->hw->config_buf; @@ -4837,7 +4837,7 @@ stmapp_abts_process(MPT_STM_PRIV *priv, int rx_id, LinkServiceBufferPostReply_t *rep, int index) { -#ifdef DEBUG +#ifdef CONFIG_SCST_DEBUG MPT_ADAPTER *ioc = priv->ioc; #endif volatile int *io_state; @@ -4886,7 +4886,7 @@ stmapp_srr_process(MPT_STM_PRIV *priv, int rx_id, int r_ctl, u32 offset, LinkServiceBufferPostReply_t *rep, int index) { -#ifdef DEBUG +#ifdef CONFIG_SCST_DEBUG MPT_ADAPTER *ioc = priv->ioc; #endif FC_ELS *fc_els_buf; @@ -5450,7 +5450,7 @@ TRACE_EXIT(); } -#if defined(DEBUG) || defined(TRACING) +#if defined(CONFIG_SCST_DEBUG) || defined(CONFIG_SCST_TRACING) #define MPT_PROC_LOG_ENTRY_NAME "trace_level" @@ -5491,7 +5491,7 @@ static int mpt_proc_log_entry_build(struct scst_tgt_template *templ) { int res = 0; -#if defined(DEBUG) || defined(TRACING) +#if defined(CONFIG_SCST_DEBUG) || defined(CONFIG_SCST_TRACING) struct proc_dir_entry *p, *root; TRACE_ENTRY(); @@ -5520,7 +5520,7 @@ static void mpt_proc_log_entry_clean(struct scst_tgt_template *templ) { -#if defined(DEBUG) || defined(TRACING) +#if defined(CONFIG_SCST_DEBUG) || defined(CONFIG_SCST_TRACING) struct proc_dir_entry *root; TRACE_ENTRY(); Modified: trunk/qla2x00t/qla2x00-target/Makefile =================================================================== --- trunk/qla2x00t/qla2x00-target/Makefile 2008-07-10 07:05:47 UTC (rev 452) +++ trunk/qla2x00t/qla2x00-target/Makefile 2008-07-10 10:49:06 UTC (rev 453) @@ -35,8 +35,8 @@ INSTALL_DIR := /lib/modules/$(shell uname -r)/extra -EXTRA_CFLAGS += -DEXTRACHECKS -#EXTRA_CFLAGS += -DTRACING +EXTRA_CFLAGS += -DCONFIG_SCST_EXTRACHECKS +#EXTRA_CFLAGS += -DCONFIG_SCST_TRACING EXTRA_CFLAGS += -DDEBUG_TGT -g #EXTRA_CFLAGS += -DDEBUG_WORK_IN_THREAD Modified: trunk/qla2x00t/qla2x00-target/README =================================================================== --- trunk/qla2x00t/qla2x00-target/README 2008-07-10 07:05:47 UTC (rev 452) +++ trunk/qla2x00t/qla2x00-target/README 2008-07-10 10:49:06 UTC (rev 453) @@ -84,8 +84,8 @@ the driver considerably bigger and slower, producing large amount of log data. - - TRACING - turns on ability to log events. Makes the driver considerably - bigger and lead to some performance loss. + - CONFIG_SCST_TRACING - turns on ability to log events. Makes the driver + considerably bigger and leads to some performance loss. - DEBUG_WORK_IN_THREAD - makes SCST process incoming commands and call the driver's callbacks in SCST thread context instead of tasklet Modified: trunk/qla2x00t/qla2x00-target/qla2x00t.c =================================================================== --- trunk/qla2x00t/qla2x00-target/qla2x00t.c 2008-07-10 07:05:47 UTC (rev 452) +++ trunk/qla2x00t/qla2x00-target/qla2x00t.c 2008-07-10 10:49:06 UTC (rev 453) @@ -47,12 +47,12 @@ #error "FC_TARGET_SUPPORT is NOT DEFINED" #endif -#ifdef DEBUG +#ifdef CONFIG_SCST_DEBUG #define Q2T_DEFAULT_LOG_FLAGS (TRACE_FUNCTION | TRACE_PID | \ TRACE_OUT_OF_MEM | TRACE_MGMT | TRACE_MGMT_MINOR | \ TRACE_MGMT_DEBUG | TRACE_MINOR | TRACE_SPECIAL) #else -# ifdef TRACING +# ifdef CONFIG_SCST_TRACING #define Q2T_DEFAULT_LOG_FLAGS (TRACE_OUT_OF_MEM | TRACE_MGMT | TRACE_MINOR | \ TRACE_SPECIAL) # endif @@ -79,7 +79,7 @@ * Global Variables */ -#if defined(DEBUG) || defined(TRACING) +#if defined(CONFIG_SCST_DEBUG) || defined(CONFIG_SCST_TRACING) #define trace_flag q2t_trace_flag unsigned long q2t_trace_flag = Q2T_DEFAULT_LOG_FLAGS; #endif @@ -2135,7 +2135,7 @@ return; } -#if defined(DEBUG) || defined(TRACING) +#if defined(CONFIG_SCST_DEBUG) || defined(CONFIG_SCST_TRACING) #define Q2T_PROC_LOG_ENTRY_NAME "trace_level" @@ -2176,7 +2176,7 @@ static int q2t_proc_log_entry_build(struct scst_tgt_template *templ) { int res = 0; -#if defined(DEBUG) || defined(TRACING) +#if defined(CONFIG_SCST_DEBUG) || defined(CONFIG_SCST_TRACING) struct proc_dir_entry *p, *root; TRACE_ENTRY(); @@ -2205,7 +2205,7 @@ static void q2t_proc_log_entry_clean(struct scst_tgt_template *templ) { -#if defined(DEBUG) || defined(TRACING) +#if defined(CONFIG_SCST_DEBUG) || defined(CONFIG_SCST_TRACING) struct proc_dir_entry *root; TRACE_ENTRY(); Modified: trunk/qla2x00t/qla2x00-target/qla2x00t.h =================================================================== --- trunk/qla2x00t/qla2x00-target/qla2x00t.h 2008-07-10 07:05:47 UTC (rev 452) +++ trunk/qla2x00t/qla2x00-target/qla2x00t.h 2008-07-10 10:49:06 UTC (rev 453) @@ -26,11 +26,8 @@ #include <qla_def.h> #include "qla2x_tgt_def.h" -/* Undefine the initiator driver's own DEBUG symbol */ -#undef DEBUG - #ifdef DEBUG_TGT -#define DEBUG +#define CONFIG_SCST_DEBUG #endif #include <scst_debug.h> Modified: trunk/qla2x00t-full_perf.patch =================================================================== --- trunk/qla2x00t-full_perf.patch 2008-07-10 07:05:47 UTC (rev 452) +++ trunk/qla2x00t-full_perf.patch 2008-07-10 10:49:06 UTC (rev 453) @@ -6,9 +6,9 @@ INSTALL_DIR := /lib/modules/$(shell uname -r)/extra --EXTRA_CFLAGS += -DEXTRACHECKS -+#EXTRA_CFLAGS += -DEXTRACHECKS - #EXTRA_CFLAGS += -DTRACING +-EXTRA_CFLAGS += -DCONFIG_SCST_EXTRACHECKS ++#EXTRA_CFLAGS += -DCONFIG_SCST_EXTRACHECKS + #EXTRA_CFLAGS += -DCONFIG_SCST_TRACING -EXTRA_CFLAGS += -DDEBUG_TGT -g +#EXTRA_CFLAGS += -DDEBUG_TGT -g #EXTRA_CFLAGS += -DDEBUG_WORK_IN_THREAD Modified: trunk/qla2x00t-release.patch =================================================================== --- trunk/qla2x00t-release.patch 2008-07-10 07:05:47 UTC (rev 452) +++ trunk/qla2x00t-release.patch 2008-07-10 10:49:06 UTC (rev 453) @@ -6,11 +6,11 @@ INSTALL_DIR := /lib/modules/$(shell uname -r)/extra --EXTRA_CFLAGS += -DEXTRACHECKS --#EXTRA_CFLAGS += -DTRACING +-EXTRA_CFLAGS += -DCONFIG_SCST_EXTRACHECKS +-#EXTRA_CFLAGS += -DCONFIG_SCST_TRACING -EXTRA_CFLAGS += -DDEBUG_TGT -g -+#EXTRA_CFLAGS += -DEXTRACHECKS -+EXTRA_CFLAGS += -DTRACING ++#EXTRA_CFLAGS += -DCONFIG_SCST_EXTRACHECKS ++EXTRA_CFLAGS += -DCONFIG_SCST_TRACING +#EXTRA_CFLAGS += -DDEBUG_TGT -g #EXTRA_CFLAGS += -DDEBUG_WORK_IN_THREAD Modified: trunk/scst/ChangeLog =================================================================== --- trunk/scst/ChangeLog 2008-07-10 07:05:47 UTC (rev 452) +++ trunk/scst/ChangeLog 2008-07-10 10:49:06 UTC (rev 453) @@ -97,7 +97,7 @@ --------------------------------------------------- - Fixed many found task management related problems, especially in the - RESETs area. DEBUG_TM compilation option added (see README). + RESETs area. CONFIG_SCST_DEBUG_TM compilation option added (see README). - Updated to work on kernels version 2.6.18+. @@ -198,8 +198,8 @@ - UA generating after MODE SELECT and LOG SELECT implemented - - STRICT_SERIALIZING compile-time option added for those who need most - robust task management and willing to pay some performance cost for + - CONFIG_SCST_STRICT_SERIALIZING compile-time option added for those who need + the most robust task management and willing to pay some performance cost for that (see README) - IRQ spinlocks were replaced by BH ones, where appropriate. Modified: trunk/scst/README =================================================================== --- trunk/scst/README 2008-07-10 07:05:47 UTC (rev 452) +++ trunk/scst/README 2008-07-10 10:49:06 UTC (rev 453) @@ -64,7 +64,7 @@ in the kernel. Patch scst_exec_req_fifo.patch from "kernel" directory does that. If it doesn't apply to your kernel, apply it manually, it only adds one of those functions and nothing more. You may not patch the -kernel if you don't need pass-through support or STRICT_SERIALIZING is +kernel if you don't need pass-through support or CONFIG_SCST_STRICT_SERIALIZING is defined during the compilation (see description below). To compile SCST type 'make scst'. It will build SCST itself and its @@ -184,24 +184,24 @@ There are the following compilation options, that could be commented in/out in Makefile: - - DEBUG - if defined, turns on some debugging code, including some - logging. Makes the driver considerably bigger and slower, producing - large amount of log data. + - CONFIG_SCST_DEBUG - if defined, turns on some debugging code, + including some logging. Makes the driver considerably bigger and slower, + producing large amount of log data. - - TRACING - if defined, turns on ability to log events. Makes the - driver considerably bigger and lead to some performance loss. + - CONFIG_SCST_TRACING - if defined, turns on ability to log events. Makes the + driver considerably bigger and leads to some performance loss. - - EXTRACHECKS - if defined, adds extra validity checks in the various - places. + - CONFIG_SCST_EXTRACHECKS - if defined, adds extra validity checks in + the various places. - - USE_EXPECTED_VALUES - if not defined (default), initiator supplied - expected data transfer length and direction will be used only for + - CONFIG_SCST_USE_EXPECTED_VALUES - if not defined (default), initiator + supplied expected data transfer length and direction will be used only for verification purposes to return error or warn in case if one of them is invalid. Instead, locally decoded from SCSI command values will be used. This is necessary for security reasons, because otherwise a faulty initiator can crash target by supplying invalid value in one of those parameters. This is especially important in case of - pass-through mode. If USE_EXPECTED_VALUES is defined, initiator + pass-through mode. If CONFIG_SCST_USE_EXPECTED_VALUES is defined, initiator supplied expected data transfer length and direction will override the locally decoded values. This might be necessary if internal SCST commands translation table doesn't contain SCSI command, which is @@ -212,16 +212,16 @@ scs...@li.... Note, that not all SCSI transports support supplying expected values. - - DEBUG_TM - if defined, turns on task management functions debugging, - when on LUN 0 in the default access control group some of the + - CONFIG_SCST_DEBUG_TM - if defined, turns on task management functions + debugging, when on LUN 0 in the default access control group some of the commands will be delayed for about 60 sec., so making the remote initiator send TM functions, eg ABORT TASK and TARGET RESET. Also - define TM_DBG_GO_OFFLINE symbol in the Makefile to 1 if you want that - the device eventually become completely unresponsive, or to 0 - otherwise to circle around ABORTs and RESETs code. Needs DEBUG turned - on. + define CONFIG_SCST_TM_DBG_GO_OFFLINE symbol in the Makefile if you + want that the device eventually become completely unresponsive, or + otherwise to circle around ABORTs and RESETs code. Needs CONFIG_SCST_DEBUG + turned on. - - STRICT_SERIALIZING - if defined, makes SCST send all commands to + - CONFIG_SCST_STRICT_SERIALIZING - if defined, makes SCST send all commands to underlying SCSI device synchronously, one after one. This makes task management more reliable, with cost of some performance penalty. This is mostly actual for stateful SCSI devices like tapes, where the @@ -233,8 +233,8 @@ need as much error recovery reliability as possible. As a side effect, no kernel patching is necessary. - - ALLOW_PASSTHROUGH_IO_SUBMIT_IN_SIRQ - if defined, it will be allowed - to submit pass-through commands to real SCSI devices via the SCSI + - CONFIG_SCST_ALLOW_PASSTHROUGH_IO_SUBMIT_IN_SIRQ - if defined, it will be + allowed to submit pass-through commands to real SCSI devices via the SCSI middle layer using scsi_execute_async() function from soft IRQ context (tasklets). This used to be the default, but currently it seems the SCSI middle layer starts expecting only thread context on @@ -245,20 +245,20 @@ scsi_execute_async() function, you will get a warning message in the kernel log. - - SCST_HIGHMEM - if defined on HIGHMEM systems with 2.6 kernels, it + - CONFIG_SCST_HIGHMEM - if defined on HIGHMEM systems with 2.6 kernels, it allows SCST to use HIGHMEM. This is very experimental feature, which is currently broken and unsupported, since it is unclear, if it brings something valuable, except some performance hit. Note, that - SCST_HIGHMEM isn't required for HIGHMEM systems and SCST will work + CONFIG_SCST_HIGHMEM isn't required for HIGHMEM systems and SCST will work fine on them with SCST_HIGHMEM off. - - SCST_STRICT_SECURITY - if defined, makes SCST zero allocated data + - CONFIG_SCST_STRICT_SECURITY - if defined, makes SCST zero allocated data buffers. Undefining it (default) considerably improves performance and eases CPU load, but could create a security hole (information leakage), so enable it, if you have strict security requirements. - - ABORT_CONSIDER_FINISHED_TASKS_AS_NOT_EXISTING - if defined, in case - when TASK MANAGEMENT function ABORT TASK is trying to abort a + - CONFIG_SCST_ABORT_CONSIDER_FINISHED_TASKS_AS_NOT_EXISTING - if defined, + in case when TASK MANAGEMENT function ABORT TASK is trying to abort a command, which has already finished, remote initiator, which sent the ABORT TASK request, will receive TASK NOT EXIST (or ABORT FAILED) response for the ABORT TASK request. This is more logical response, @@ -649,18 +649,20 @@ 1. For SCST: - - Disable in Makefile STRICT_SERIALIZING, EXTRACHECKS, TRACING, DEBUG*, - SCST_STRICT_SECURITY, SCST_HIGHMEM + - Disable in Makefile CONFIG_SCST_STRICT_SERIALIZING, CONFIG_SCST_EXTRACHECKS, + CONFIG_SCST_TRACING, DEBUG*, CONFIG_SCST_STRICT_SECURITY, + CONFIG_SCST_HIGHMEM - - For pass-through devices enable ALLOW_PASSTHROUGH_IO_SUBMIT_IN_SIRQ. + - For pass-through devices enable + CONFIG_SCST_ALLOW_PASSTHROUGH_IO_SUBMIT_IN_SIRQ. 2. For target drivers: - - Disable in Makefiles EXTRACHECKS, TRACING, DEBUG* + - Disable in Makefiles CONFIG_SCST_EXTRACHECKS, CONFIG_SCST_TRACING, DEBUG* 3. For device handlers, including VDISK: - - Disable in Makefile TRACING, DEBUG + - Disable in Makefile CONFIG_SCST_TRACING and CONFIG_SCST_DEBUG. - If your initiator(s) use dedicated exported from the target virtual SCSI devices and have more or equal amount of memory, than the @@ -673,7 +675,7 @@ than for performance. If you use SCST version taken directly from the SVN repository, you can -set the above options, except ALLOW_PASSTHROUGH_IO_SUBMIT_IN_SIRQ, using +set the above options, except CONFIG_SCST_ALLOW_PASSTHROUGH_IO_SUBMIT_IN_SIRQ, using debug2perf Makefile target. 4. For other target and initiator software parts: Modified: trunk/scst/ToDo =================================================================== --- trunk/scst/ToDo 2008-07-10 07:05:47 UTC (rev 452) +++ trunk/scst/ToDo 2008-07-10 10:49:06 UTC (rev 453) @@ -30,7 +30,7 @@ - HIGHMEM cleanup. Looks like HIGHMEM usage doesn't worth the effort and performance hit, at least until VDISK handler doesn't use the page cache directly, so disable it for now, although the code looks ready. - To enable it, set SCST_HIGHMEM in 1 in scst_priv.h. HIGHMEM is not + To enable it, set CONFIG_SCST_HIGHMEM in 1 in scst_priv.h. HIGHMEM is not supported on 2.4 and is not going to be. - Small ToDo's spread all over the code. Modified: trunk/scst/include/scst.h =================================================================== --- trunk/scst/include/scst.h 2008-07-10 07:05:47 UTC (rev 452) +++ trunk/scst/include/scst.h 2008-07-10 10:49:06 UTC (rev 453) @@ -27,7 +27,7 @@ #include <linux/interrupt.h> #include <linux/proc_fs.h> -#ifdef SCST_HIGHMEM +#ifdef CONFIG_SCST_HIGHMEM #include <asm/kmap_types.h> #endif #include <scsi/scsi_cmnd.h> @@ -365,7 +365,7 @@ #define SCST_TGT_DEV_AFTER_RX_DATA_ATOMIC 9 #define SCST_TGT_DEV_AFTER_EXEC_ATOMIC 10 -#ifdef DEBUG_TM +#ifdef CONFIG_SCST_DEBUG_TM #define SCST_TGT_DEV_UNDER_TM_DBG 20 #endif @@ -1045,13 +1045,13 @@ /* * Set if the cmd was delayed by task management debugging code. - * Used only if DEBUG_TM is on. + * Used only if CONFIG_SCST_DEBUG_TM is on. */ unsigned int tm_dbg_delayed:1; /* * Set if the cmd must be ignored by task management debugging code. - * Used only if DEBUG_TM is on. + * Used only if CONFIG_SCST_DEBUG_TM is on. */ unsigned int tm_dbg_immut:1; @@ -2006,7 +2006,7 @@ static inline int scst_cmd_atomic(struct scst_cmd *cmd) { int res = cmd->atomic; -#ifdef EXTRACHECKS +#ifdef CONFIG_SCST_EXTRACHECKS if (unlikely(in_atomic() && !res)) { printk(KERN_ERR "ERROR: in_atomic() and non-atomic cmd\n"); dump_stack(); @@ -2393,7 +2393,7 @@ if ((i >= cmd->sg_cnt) || unlikely(sg == NULL)) goto out; -#ifdef SCST_HIGHMEM /* HIGHMEM isn't currently supported */ +#ifdef CONFIG_SCST_HIGHMEM /* HIGHMEM isn't currently supported */ /* * HIGHMEM pages not merged (clustered), so if it's * not HIGHMEM page, kmap() is the same as page_address() @@ -2432,7 +2432,7 @@ static inline void scst_put_buf(struct scst_cmd *cmd, void *buf) { -#ifdef SCST_HIGHMEM /* HIGHMEM isn't currently supported */ +#ifdef CONFIG_SCST_HIGHMEM /* HIGHMEM isn't currently supported */ if (cmd->sg_cnt) { if (scst_cmd_atomic(cmd)) { enum km_type km; @@ -2455,7 +2455,7 @@ static inline int scst_get_buf_count(struct scst_cmd *cmd) { int res; -#ifdef SCST_HIGHMEM +#ifdef CONFIG_SCST_HIGHMEM res = (cmd->bufflen >> PAGE_SHIFT) + 1; #else res = (cmd->sg_cnt == 0) ? 1 : cmd->sg_cnt; Modified: trunk/scst/include/scst_debug.h =================================================================== --- trunk/scst/include/scst_debug.h 2008-07-10 07:05:47 UTC (rev 452) +++ trunk/scst/include/scst_debug.h 2008-07-10 10:49:06 UTC (rev 453) @@ -27,25 +27,9 @@ #include <linux/bug.h> /* for WARN_ON_ONCE */ #endif -#if !defined(EXTRACHECKS) && defined(CONFIG_SCSI_TARGET_EXTRACHECKS) -#define EXTRACHECKS -#endif - -#if !defined(TRACING) && defined(CONFIG_SCSI_TARGET_TRACING) -#define TRACING -#endif - -#if !defined(DEBUG) && defined(CONFIG_SCSI_TARGET_DEBUG) -#define DEBUG -#endif - #if !defined(INSIDE_KERNEL_TREE) -#ifdef DEBUG +#ifdef CONFIG_SCST_DEBUG -#ifndef EXTRACHECKS -#define EXTRACHECKS -#endif - #ifndef CONFIG_DEBUG_BUGVERBOSE #define sBUG() do { \ printk(KERN_CRIT "BUG at %s:%d\n", \ @@ -86,7 +70,7 @@ }) #endif -#ifdef EXTRACHECKS +#ifdef CONFIG_SCST_EXTRACHECKS #define EXTRACHECKS_BUG_ON(a) sBUG_ON(a) #define EXTRACHECKS_WARN_ON(a) WARN_ON(a) #define EXTRACHECKS_WARN_ON_ONCE(a) WARN_ON_ONCE(a) @@ -96,7 +80,7 @@ #define EXTRACHECKS_WARN_ON_ONCE(a) #endif -#ifdef DEBUG +#ifdef CONFIG_SCST_DEBUG /*# define LOG_FLAG KERN_DEBUG*/ # define LOG_FLAG KERN_INFO # define INFO_FLAG KERN_INFO @@ -139,9 +123,9 @@ #define __LOG_PREFIX NULL #endif -#if defined(DEBUG) || defined(TRACING) +#if defined(CONFIG_SCST_DEBUG) || defined(CONFIG_SCST_TRACING) -#ifndef DEBUG +#ifndef CONFIG_SCST_DEBUG #define ___unlikely(a) (a) #else #define ___unlikely(a) unlikely(a) @@ -183,15 +167,15 @@ } \ } while (0) -#else /* DEBUG || TRACING */ +#else /* CONFIG_SCST_DEBUG || CONFIG_SCST_TRACING */ #define TRACE(trace, args...) {} #define PRINT_BUFFER(message, buff, len) {} #define PRINT_BUFF_FLAG(flag, message, buff, len) {} -#endif /* DEBUG || TRACING */ +#endif /* CONFIG_SCST_DEBUG || CONFIG_SCST_TRACING */ -#ifdef DEBUG +#ifdef CONFIG_SCST_DEBUG #define __TRACE(trace, format, args...) \ do { \ @@ -333,7 +317,7 @@ } \ } while (0) -#else /* DEBUG */ +#else /* CONFIG_SCST_DEBUG */ #define TRACE_MEM(format, args...) {} #define TRACE_SG(format, args...) {} @@ -400,9 +384,9 @@ #endif /* LOG_PREFIX */ -#endif /* DEBUG */ +#endif /* CONFIG_SCST_DEBUG */ -#if defined(DEBUG) && defined(CONFIG_DEBUG_SLAB) +#if defined(CONFIG_SCST_DEBUG) && defined(CONFIG_DEBUG_SLAB) #define SCST_SLAB_FLAGS (SLAB_RED_ZONE | SLAB_POISON) #else #define SCST_SLAB_FLAGS 0L Modified: trunk/scst/kernel/in-tree/Kconfig.scst =================================================================== --- trunk/scst/kernel/in-tree/Kconfig.scst 2008-07-10 07:05:47 UTC (rev 452) +++ trunk/scst/kernel/in-tree/Kconfig.scst 2008-07-10 10:49:06 UTC (rev 453) @@ -1,96 +1,211 @@ menu "SCSI target middle level support" -config SCSI_TARGET +config SCST tristate "SCSI target middle level support" default SCSI depends on SCSI && PROC_FS - ---help--- + help SCSI TARGET is designed to provide unified, consistent interface between SCSI target drivers and Linux kernel and simplify target drivers development as much as possible. -config SCSI_TARGET_DISK +config SCST_DISK tristate "SCSI target disk support" - default SCSI_TARGET - depends on SCSI && PROC_FS && SCSI_TARGET - ---help--- + default SCST + depends on SCSI && PROC_FS && SCST + help SCSI TARGET handler for disk device. -config SCSI_TARGET_TAPE +config SCST_TAPE tristate "SCSI target tape support" - default SCSI_TARGET - depends on SCSI && PROC_FS && SCSI_TARGET - ---help--- + default SCST + depends on SCSI && PROC_FS && SCST + help SCSI TARGET handler for tape device. -config SCSI_TARGET_CDROM +config SCST_CDROM tristate "SCSI target cdrom support" - default SCSI_TARGET - depends on SCSI && PROC_FS && SCSI_TARGET - ---help--- + default SCST + depends on SCSI && PROC_FS && SCST + help SCSI TARGET handler for cdrom device. -config SCSI_TARGET_MODISK +config SCST_MODISK tristate "SCSI target MO disk support" - default SCSI_TARGET - depends on SCSI && PROC_FS && SCSI_TARGET - ---help--- + default SCST + depends on SCSI && PROC_FS && SCST + help SCSI TARGET handler for MO disk device. -config SCSI_TARGET_CHANGER +config SCST_CHANGER tristate "SCSI target changer support" - default SCSI_TARGET - depends on SCSI && PROC_FS && SCSI_TARGET - ---help--- + default SCST + depends on SCSI && PROC_FS && SCST + help SCSI TARGET handler for changer device. -config SCSI_TARGET_PROCESSOR +config SCST_PROCESSOR tristate "SCSI target processor support" - default SCSI_TARGET - depends on SCSI && PROC_FS && SCSI_TARGET - ---help--- + default SCST + depends on SCSI && PROC_FS && SCST + help SCSI TARGET handler for processor device. -config SCSI_TARGET_RAID +config SCST_RAID tristate "SCSI target storage array controller (raid) support" - default SCSI_TARGET - depends on SCSI && PROC_FS && SCSI_TARGET - ---help--- + default SCST + depends on SCSI && PROC_FS && SCST + help SCSI TARGET handler for raid storage array controller (raid) device. -config SCSI_TARGET_VDISK +config SCST_VDISK tristate "SCSI target virtual disk and/or cdrom support" - default SCSI_TARGET - depends on SCSI && PROC_FS && SCSI_TARGET - ---help--- + default SCST + depends on SCSI && PROC_FS && SCST + help SCSI TARGET handler for virtual disk and/or cdrom device. -config SCSI_TARGET_USER +config SCST_USER tristate "SCSI user space virtual target devices support" - default SCSI_TARGET - depends on SCSI && PROC_FS && SCSI_TARGET && ! HIGHMEM - ---help--- + default SCST + depends on SCSI && PROC_FS && SCST && ! HIGHMEM + help SCSI TARGET handler for virtual user space device. source "drivers/scst/iscsi-scst/Kconfig" -config SCSI_TARGET_EXTRACHECKS - bool "Extra consistency checks" - ---help--- - Enable additional consistency checks in the SCSI middle level target - code. This may be helpful for SCST developers. +config SCST_STRICT_SERIALIZING + bool "Strict serialization" + help + Enable strict SCSI command serialization. When enabled, SCST sends + all SCSI commands to the underlying SCSI device synchronously, one + after one. This makes task management more reliable, at the cost of + a performance penalty. This is most useful for stateful SCSI devices + like tapes, where the result of the execution of a command + depends on the device settings configured by previous commands. Disk + and RAID devices are stateless in most cases. The current SCSI core + in Linux doesn't allow to abort all commands reliably if they have + been sent asynchronously to a stateful device. + Enable this option if you use stateful device(s) and need as much + error recovery reliability as possible. If unsure, leave this + option disabled. -config SCSI_TARGET_TRACING +config SCST_STRICT_SECURITY + bool "Strict security" + help + Makes SCST clear (zero-fill) allocated data buffers. Note: this has a + significant performance penalty. If unsure, leave this option + disabled. + +config SCST_ALLOW_PASSTHROUGH_IO_SUBMIT_IN_SIRQ + bool "Allow pass-through commands to be sent from soft-IRQ context" + help + Allows SCST to submit SCSI pass-through commands to real SCSI devices + via the SCSI middle layer using scsi_execute_async() function from + soft-IRQ context (tasklets). This used to be the default, but + currently it seems the SCSI middle layer starts expecting only thread + context on the IO submit path, so it is disabled now by default. + Enabling it will decrease amount of context switches and improve + performance. It is more or less safe. In the worst case, if in your + configuration the SCSI middle layer really doesn't expect SIRQ + context in scsi_execute_async() function, you will get a warning + message in the kernel log. If unsure, leave this option disabled. + +config SCST_ABORT_CONSIDER_FINISHED_TASKS_AS_NOT_EXISTING + bool "Send back UNKNOWN TASK when an already finished task is aborted." + help + Controls which response is sent by SCST to the initiator in case + the initiator attempts to abort (ABORT TASK) an already finished + request. If this option is enabled, the response UNKNOWN TASK is + sent back to the initiator. However, some initiators, particularly + the VMware iSCSI initiator, interpret the UNKNOWN TASK response as + if the target got crazy and try to RESET it. Then sometimes the + initiator gets crazy itself. If unsure, leave this option disabled. + +config SCST_USE_EXPECTED_VALUES + bool "Prefer initiator-supplied SCSI command attributes" + help + When SCST receives a SCSI command from an initiator, such a SCSI + command has both data transfer length and direction attributes. + There are two possible sources for these attributes: either the + values computed by SCST from its internal command translation table + or the values supplied by the initiator. The former are used by + default because of security reasons. Invalid initiator-supplied + attributes can crash the target, especially in pass-through mode. + Only consider enabling this option when SCST logs the following + message: "Unknown opcode XX for YY. Should you update + scst_scsi_op_table?" and when the initiator complains. Please + report any unrecognized commands to scs...@li.... + If unsure, leave this option disabled. + +config SCST_EXTRACHECKS + bool "Extra consistency checks" + help + Enable additional consistency checks in the SCSI middle level target + code. This may be helpful for SCST developers. If unsure, leave this + option disabled. + +config SCST_TRACING bool "Tracing support" - ---help--- - Enable SCSI middle level tracing support. Tracing can be controlled - dynamically via /proc/scsi_tgt/trace_level. The traced information - is sent to the kernel log and may be very helpful when analyzing - the cause of a communication problem between initiator and target. + help + Enable SCSI middle level tracing support. Tracing can be controlled + dynamically via /proc/scsi_tgt/trace_level. The traced information + is sent to the kernel log and may be very helpful when analyzing + the cause of a communication problem between initiator and target. + If unsure, leave this option disabled. -config SCSI_TARGET_DEBUG - bool "Debug support" - ---help--- - SCSI TARGET debugging. +config SCST_DEBUG + bool "Debugging support." + help + Enables support for debugging SCST. This may be helpful for SCST + developers. If unsure, leave this option disabled. +config SCST_DEBUG_OOM + bool "Out-of-memory debugging support." + help + Let SCST's internal memory allocation function + (scst_alloc_sg_entries()) fail about once in every 10000 calls, at + least if the flag __GFP_NOFAIL has not been set. This allows SCST + developers to test the behavior of SCST in out-of-memory conditions. + This may be helpful for SCST developers. If unsure, leave this + option disabled. + +config SCST_DEBUG_RETRY + bool "SCSI command retry debugging support." + help + Let SCST's internal SCSI command transfer function + (scst_rdy_to_xfer()) fail about once in every 100 calls. This allows + SCST developers to test the behavior of SCST when SCSI queues fill + up. This may be helpful for SCST developers. If unsure, leave this + option disabled. + +config SCST_DEBUG_SN + bool "SCSI sequence number debugging support." + help + Allows to test SCSI command ordering via sequence numbers by + randomly changing the type of SCSI commands into + SCST_CMD_QUEUE_ORDERED, SCST_CMD_QUEUE_HEAD_OF_QUEUE or + SCST_CMD_QUEUE_SIMPLE for about one in 300 SCSI commands. + This may be helpful for SCST developers. If unsure, leave this + option disabled. + +config SCST_DEBUG_TM + bool "Task management debugging support." + depends on SCST_DEBUG + help + Enables support for debugging of SCST's task management functions. + When enabled, some of the commands on LUN 0 in the default access + control group will be delayed for about 60 seconds. This will + cause the remote initiator send SCSI task management functions, + e.g. ABORT TASK and TARGET RESET. If unsure, leave this option + disabled. + +config SCST_TM_DBG_GO_OFFLINE + bool "Let devices become completely unresponsive." + depends on SCST_DEBUG_TM + help + Enable this option if you want that the device eventually becomes + completely unresponsive. When disabled, the device will receive + ABORT and RESET commands. If unsure, leave this option disabled. + endmenu Modified: trunk/scst/kernel/in-tree/Makefile.dev_handlers =================================================================== --- trunk/scst/kernel/in-tree/Makefile.dev_handlers 2008-07-10 07:05:47 UTC (rev 452) +++ trunk/scst/kernel/in-tree/Makefile.dev_handlers 2008-07-10 10:49:06 UTC (rev 453) @@ -3,12 +3,12 @@ obj-m := scst_cdrom.o scst_changer.o scst_disk.o scst_modisk.o scst_tape.o \ scst_vdisk.o scst_raid.o scst_processor.o scst_user.o -obj-$(CONFIG_SCSI_TARGET_DISK) += scst_disk.o -obj-$(CONFIG_SCSI_TARGET_TAPE) += scst_tape.o -obj-$(CONFIG_SCSI_TARGET_CDROM) += scst_cdrom.o -obj-$(CONFIG_SCSI_TARGET_MODISK) += scst_modisk.o -obj-$(CONFIG_SCSI_TARGET_CHANGER) += scst_changer.o -obj-$(CONFIG_SCSI_TARGET_RAID) += scst_raid.o -obj-$(CONFIG_SCSI_TARGET_PROCESSOR) += scst_processor.o -obj-$(CONFIG_SCSI_TARGET_VDISK) += scst_vdisk.o -obj-$(CONFIG_SCSI_TARGET_USER) += scst_user.o +obj-$(CONFIG_SCST_DISK) += scst_disk.o +obj-$(CONFIG_SCST_TAPE) += scst_tape.o +obj-$(CONFIG_SCST_CDROM) += scst_cdrom.o +obj-$(CONFIG_SCST_MODISK) += scst_modisk.o +obj-$(CONFIG_SCST_CHANGER) += scst_changer.o +obj-$(CONFIG_SCST_RAID) += scst_raid.o +obj-$(CONFIG_SCST_PROCESSOR) += scst_processor.o +obj-$(CONFIG_SCST_VDISK) += scst_vdisk.o +obj-$(CONFIG_SCST_USER) += scst_user.o Modified: trunk/scst/kernel/in-tree/Makefile.drivers.Linux-2.6.15.patch =================================================================== --- trunk/scst/kernel/in-tree/Makefile.drivers.Linux-2.6.15.patch 2008-07-10 07:05:47 UTC (rev 452) +++ trunk/scst/kernel/in-tree/Makefile.drivers.Linux-2.6.15.patch 2008-07-10 10:49:06 UTC (rev 453) @@ -4,7 +4,7 @@ obj-$(CONFIG_SCSI_QLOGIC_FC) += qlogicfc.o obj-$(CONFIG_SCSI_QLOGIC_1280) += qla1280.o obj-$(CONFIG_SCSI_QLA2XXX) += qla2xxx/ -+obj-$(CONFIG_SCSI_TARGET) += scsi_tgt/ ++obj-$(CONFIG_SCST) += scsi_tgt/ obj-$(CONFIG_SCSI_LPFC) += lpfc/ obj-$(CONFIG_SCSI_PAS16) += pas16.o obj-$(CONFIG_SCSI_SEAGATE) += seagate.o Modified: trunk/scst/kernel/in-tree/Makefile.drivers.Linux-2.6.24.patch =================================================================== --- trunk/scst/kernel/in-tree/Makefile.drivers.Linux-2.6.24.patch 2008-07-10 07:05:47 UTC (rev 452) +++ trunk/scst/kernel/in-tree/Makefile.drivers.Linux-2.6.24.patch 2008-07-10 10:49:06 UTC (rev 453) @@ -5,7 +5,7 @@ obj-y += macintosh/ obj-$(CONFIG_IDE) += ide/ obj-$(CONFIG_SCSI) += scsi/ -+obj-$(CONFIG_SCSI_TARGET) += scst/ ++obj-$(CONFIG_SCST) += scst/ obj-$(CONFIG_ATA) += ata/ obj-$(CONFIG_FUSION) += message/ obj-$(CONFIG_FIREWIRE) += firewire/ Modified: trunk/scst/kernel/in-tree/Makefile.drivers.Linux-2.6.25.patch =================================================================== --- trunk/scst/kernel/in-tree/Makefile.drivers.Linux-2.6.25.patch 2008-07-10 07:05:47 UTC (rev 452) +++ trunk/scst/kernel/in-tree/Makefile.drivers.Linux-2.6.25.patch 2008-07-10 10:49:06 UTC (rev 453) @@ -5,7 +5,7 @@ obj-y += macintosh/ obj-$(CONFIG_IDE) += ide/ obj-$(CONFIG_SCSI) += scsi/ -+obj-$(CONFIG_SCSI_TARGET) += scst/ ++obj-$(CONFIG_SCST) += scst/ obj-$(CONFIG_ATA) += ata/ obj-$(CONFIG_FUSION) += message/ obj-$(CONFIG_FIREWIRE) += firewire/ Modified: trunk/scst/kernel/in-tree/Makefile.drivers.Linux-2.6.7.patch =================================================================== --- trunk/scst/kernel/in-tree/Makefile.drivers.Linux-2.6.7.patch 2008-07-10 07:05:47 UTC (rev 452) +++ trunk/scst/kernel/in-tree/Makefile.drivers.Linux-2.6.7.patch 2008-07-10 10:49:06 UTC (rev 453) @@ -4,7 +4,7 @@ obj-$(CONFIG_SCSI_QLOGIC_FC) += qlogicfc.o obj-$(CONFIG_SCSI_QLOGIC_1280) += qla1280.o obj-$(CONFIG_SCSI_QLA2XXX) += qla2xxx/ -+obj-$(CONFIG_SCSI_TARGET) += scsi_tgt/ ++obj-$(CONFIG_SCST) += scsi_tgt/ obj-$(CONFIG_SCSI_PAS16) += pas16.o obj-$(CONFIG_SCSI_SEAGATE) += seagate.o obj-$(CONFIG_SCSI_FD_8xx) += seagate.o Modified: trunk/scst/kernel/in-tree/Makefile.scst =================================================================== --- trunk/scst/kernel/in-tree/Makefile.scst 2008-07-10 07:05:47 UTC (rev 452) +++ trunk/scst/kernel/in-tree/Makefile.scst 2008-07-10 10:49:06 UTC (rev 453) @@ -7,5 +7,5 @@ scst-y += scst_mem.o scst-y += scst_debug.o -obj-$(CONFIG_SCSI_TARGET) += scst.o dev_handlers/ iscsi-scst/ +obj-$(CONFIG_SCST) += scst.o dev_handlers/ iscsi-scst/ Modified: trunk/scst/src/Makefile =================================================================== --- trunk/scst/src/Makefile 2008-07-10 07:05:47 UTC (rev 452) +++ trunk/scst/src/Makefile 2008-07-10 10:49:06 UTC (rev 453) @@ -41,7 +41,7 @@ scst-y += scst_proc.o scst-y += scst_mem.o scst-y += scst_debug.o -obj-$(CONFIG_SCSI_TARGET) ... [truncated message content] |