diff --git a/nightly/conf/nightly.conf b/nightly/conf/nightly.conf index 45af7ed63..1e4eaeb16 100644 --- a/nightly/conf/nightly.conf +++ b/nightly/conf/nightly.conf @@ -3,10 +3,10 @@ ABT_DETAILS="x86_64" ABT_JOBS=5 ABT_KERNELS=" \ -4.1.2 \ -4.0.8-nc \ +4.1.3 \ +4.0.9-nc \ 3.19.7-nc \ -3.18.8-nc \ +3.18.19-nc \ 3.17.8-nc \ 3.16.7-nc \ 3.15.10-nc \ diff --git a/scripts/specialize-patch b/scripts/specialize-patch index aee6563e8..55cd4f51f 100755 --- a/scripts/specialize-patch +++ b/scripts/specialize-patch @@ -346,6 +346,15 @@ function process_preprocessor_statement(evaluated, condition) { } else if (evaluated ~ "^+#elif") { + matching_if = if_stmnt[if_nesting_level] + if (debug) + printf "/* debug specialize-patch: (g0a) %s: matching_if = %s */\n", \ + evaluated, matching_if + if (if_discarded[if_nesting_level]) { + sub("^+#elif", "+#if", input_line[0]) + if (debug) + printf "/* debug specialize-patch: (g0b) -> %s */\n", evaluated + } evaluated = handle_if(evaluated) } else if (evaluated ~ "^+#else") @@ -436,6 +445,9 @@ function process_preprocessor_statement(evaluated, condition) { if (lines >= 1 && line[lines - 1] == "+") delete_next_blank_line = 1 } + + if (evaluated ~ "^+#if") + if_discarded[if_nesting_level] = discard } function reset_hunk_state_variables() { diff --git a/scstadmin/init.d/scst b/scstadmin/init.d/scst index 2c33606e2..ba5ce6f19 100755 --- a/scstadmin/init.d/scst +++ b/scstadmin/init.d/scst @@ -79,7 +79,6 @@ fi cat <<"EOF" SCST_CFG=/etc/scst.conf -ISCSI_DAEMON="$(which iscsi-scstd)" show_status() { _rc_status_ret=$? @@ -160,7 +159,7 @@ parse_scst_conf() { SCST_OPT_MODULES="crc32c-intel $SCST_OPT_MODULES";; esac SCST_OPT_MODULES="crc32c isert_scst $SCST_OPT_MODULES" - SCST_DAEMONS="${ISCSI_DAEMON} $SCST_DAEMONS" + SCST_DAEMONS="$(which iscsi-scstd) $SCST_DAEMONS" fi } @@ -185,6 +184,12 @@ unload_scst() { killproc $d done + # isert_scst must be unloaded before iscsi_scst. Note that unloading + # isert_scst may take a while since in certain scenarios (e.g. cable + # problem and then service stop) MADs get timed out only after about 50+ + # seconds. + unload_kmod isert_scst 90 || echo "Unloading isert_scst failed" + reverse_list="" for m in $SCST_MODULES; do reverse_list="$m $reverse_list" diff --git a/srpt/README b/srpt/README index 85f9b91c3..1380cf354 100644 --- a/srpt/README +++ b/srpt/README @@ -85,12 +85,11 @@ The ib_srpt kernel module supports the following parameters: Configuring the SRP Target System --------------------------------- -The first step is to choose whether access control will be controlled per -HCA or per HCA port and to create a modprobe configuration file that reflects -this choice. An example: +When using RoCE or iWARP the first step is to enable support for these +protocols in the target driver by setting the rdma_cm_port kernel module +parameter to a non-zero value. An example: - # cat /etc/modprobe.d/ib_srpt.conf - options ib_srpt one_target_per_port=1 + echo options ib_srpt rdma_cm_port=5000 > /etc/modprobe.d/ib_srpt.conf Next, create the file /etc/scst.conf. You can create this file with the scstadmin tool as follows: @@ -152,7 +151,7 @@ When using RoCE or iWARP, log in to the target system to determine the id_ext and ioc_guid parameters and use these to log in. An example: [ target system ] - # sed 's/,\(pkey\|dgid\|service_id\)=[^,]*//g' $(find /sys/kernel/scst_tgt/targets/ib_srpt -name login_info) | uniq + # sed 's/tid_ext=/id_ext=/;s/,\(pkey\|dgid\|service_id\)=[^,]*//g' $(find /sys/kernel/scst_tgt/targets/ib_srpt -name login_info) | uniq id_ext=0002c90300a34270,ioc_guid=0002c90300a34270 [ initiator system ]