diff -aurp open-iscsi-2.0-872-rc4-bnx2i/iscsiuio/configure open-iscsi-2.0-872-rc4-bnx2i.build/iscsiuio/configure --- open-iscsi-2.0-872-rc4-bnx2i/iscsiuio/configure 2011-09-01 20:28:53.000000000 -0500 +++ open-iscsi-2.0-872-rc4-bnx2i.build/iscsiuio/configure 2011-09-01 20:33:58.000000000 -0500 @@ -1,6 +1,6 @@ #! /bin/sh # Guess values for system-dependent variables and create Makefiles. -# Generated by GNU Autoconf 2.59 for iscsiuio 0.7.0.12. +# Generated by GNU Autoconf 2.59 for iscsiuio 0.7.0.14. # # Report bugs to . # @@ -423,8 +423,8 @@ SHELL=${CONFIG_SHELL-/bin/sh} # Identity of this package. PACKAGE_NAME='iscsiuio' PACKAGE_TARNAME='iscsiuio' -PACKAGE_VERSION='0.7.0.12' -PACKAGE_STRING='iscsiuio 0.7.0.12' +PACKAGE_VERSION='0.7.0.14' +PACKAGE_STRING='iscsiuio 0.7.0.14' PACKAGE_BUGREPORT='eddie.wai@broadcom.com' # Factoring default headers for most tests. @@ -954,7 +954,7 @@ if test "$ac_init_help" = "long"; then # Omit some internal or obsolete options to make the list less imposing. # This message is too long to be a string in the A/UX 3.1 sh. cat <<_ACEOF -\`configure' configures iscsiuio 0.7.0.12 to adapt to many kinds of systems. +\`configure' configures iscsiuio 0.7.0.14 to adapt to many kinds of systems. Usage: $0 [OPTION]... [VAR=VALUE]... @@ -1020,7 +1020,7 @@ fi if test -n "$ac_init_help"; then case $ac_init_help in - short | recursive ) echo "Configuration of iscsiuio 0.7.0.12:";; + short | recursive ) echo "Configuration of iscsiuio 0.7.0.14:";; esac cat <<\_ACEOF @@ -1161,7 +1161,7 @@ fi test -n "$ac_init_help" && exit 0 if $ac_init_version; then cat <<\_ACEOF -iscsiuio configure 0.7.0.12 +iscsiuio configure 0.7.0.14 generated by GNU Autoconf 2.59 Copyright (C) 2003 Free Software Foundation, Inc. @@ -1175,7 +1175,7 @@ cat >&5 <<_ACEOF This file contains any messages produced by compilers while running configure, to aid debugging if configure makes a mistake. -It was created by iscsiuio $as_me 0.7.0.12, which was +It was created by iscsiuio $as_me 0.7.0.14, which was generated by GNU Autoconf 2.59. Invocation command line was $ $0 $@ @@ -21726,7 +21726,7 @@ _ASBOX } >&5 cat >&5 <<_CSEOF -This file was extended by iscsiuio $as_me 0.7.0.12, which was +This file was extended by iscsiuio $as_me 0.7.0.14, which was generated by GNU Autoconf 2.59. Invocation command line was CONFIG_FILES = $CONFIG_FILES @@ -21789,7 +21789,7 @@ _ACEOF cat >>$CONFIG_STATUS <<_ACEOF ac_cs_version="\\ -iscsiuio config.status 0.7.0.12 +iscsiuio config.status 0.7.0.14 configured by $0, generated by GNU Autoconf 2.59, with options \\"`echo "$ac_configure_args" | sed 's/[\\""\`\$]/\\\\&/g'`\\" diff -aurp open-iscsi-2.0-872-rc4-bnx2i/iscsiuio/configure.ac open-iscsi-2.0-872-rc4-bnx2i.build/iscsiuio/configure.ac --- open-iscsi-2.0-872-rc4-bnx2i/iscsiuio/configure.ac 2011-09-01 20:28:53.000000000 -0500 +++ open-iscsi-2.0-872-rc4-bnx2i.build/iscsiuio/configure.ac 2011-09-01 20:33:58.000000000 -0500 @@ -11,9 +11,9 @@ dnl Maintained by: Eddie Wai (eddie.wai@ dnl PACKAGE=iscsiuio -VERSION=0.7.0.12 +VERSION=0.7.0.14 -AC_INIT(iscsiuio, 0.7.0.12, eddie.wai@broadcom.com) +AC_INIT(iscsiuio, 0.7.0.14, eddie.wai@broadcom.com) AM_INIT_AUTOMAKE($PACKAGE, $VERSION) AC_CONFIG_HEADER(config.h) diff -aurp open-iscsi-2.0-872-rc4-bnx2i/iscsiuio/docs/iscsiuio.8 open-iscsi-2.0-872-rc4-bnx2i.build/iscsiuio/docs/iscsiuio.8 --- open-iscsi-2.0-872-rc4-bnx2i/iscsiuio/docs/iscsiuio.8 2011-09-01 20:28:53.000000000 -0500 +++ open-iscsi-2.0-872-rc4-bnx2i.build/iscsiuio/docs/iscsiuio.8 2011-09-01 20:33:58.000000000 -0500 @@ -3,9 +3,9 @@ .\" modify it under the terms of the GNU General Public License as .\" published by the Free Software Foundation. .\" -.\" bnx2.4,v 0.7.0.12 +.\" bnx2.4,v 0.7.0.14 .\" -.TH iscsiuio 8 "08/04/2011" "Broadcom Corporation" +.TH iscsiuio 8 "08/23/2011" "Broadcom Corporation" .\" .\" NAME part .\" diff -aurp open-iscsi-2.0-872-rc4-bnx2i/iscsiuio/include/uip_mgmt_ipc.h open-iscsi-2.0-872-rc4-bnx2i.build/iscsiuio/include/uip_mgmt_ipc.h --- open-iscsi-2.0-872-rc4-bnx2i/iscsiuio/include/uip_mgmt_ipc.h 2011-09-01 20:28:53.000000000 -0500 +++ open-iscsi-2.0-872-rc4-bnx2i.build/iscsiuio/include/uip_mgmt_ipc.h 2011-09-01 20:33:47.000000000 -0500 @@ -50,11 +50,11 @@ typedef struct iscsid_uip_broadcast { typedef enum iscsid_uip_mgmt_ipc_err { ISCSID_UIP_MGMT_IPC_OK = 0, - ISCISD_UIP_MGMT_IPC_ERR = 1, - ISCISD_UIP_MGMT_IPC_ERR_NOT_FOUND = 2, - ISCISD_UIP_MGMT_IPC_ERR_NOMEM = 3, - ISCISD_UIP_MGMT_IPC_DEVICE_UP = 4, - ISCISD_UIP_MGMT_IPC_DEVICE_INITIALIZING = 5, + ISCSID_UIP_MGMT_IPC_ERR = 1, + ISCSID_UIP_MGMT_IPC_ERR_NOT_FOUND = 2, + ISCSID_UIP_MGMT_IPC_ERR_NOMEM = 3, + ISCSID_UIP_MGMT_IPC_DEVICE_UP = 4, + ISCSID_UIP_MGMT_IPC_DEVICE_INITIALIZING = 5, } iscsid_uip_mgmt_ipc_err_e; /* IPC Response */ diff -aurp open-iscsi-2.0-872-rc4-bnx2i/iscsiuio/README open-iscsi-2.0-872-rc4-bnx2i.build/iscsiuio/README --- open-iscsi-2.0-872-rc4-bnx2i/iscsiuio/README 2011-09-01 20:28:53.000000000 -0500 +++ open-iscsi-2.0-872-rc4-bnx2i.build/iscsiuio/README 2011-09-01 20:33:58.000000000 -0500 @@ -1,6 +1,6 @@ -Broadcom iSCSI Userspace Tools -Version 0.7.0.12 -Aug 04, 2011 +iscsiuio Userspace Tools +Version 0.7.0.14 +Aug 23, 2011 ------------------------------------------------------ This tools is to be used in conjunction with the Broadcom NetXtreme II Linux diff -aurp open-iscsi-2.0-872-rc4-bnx2i/iscsiuio/RELEASE.TXT open-iscsi-2.0-872-rc4-bnx2i.build/iscsiuio/RELEASE.TXT --- open-iscsi-2.0-872-rc4-bnx2i/iscsiuio/RELEASE.TXT 2011-09-01 20:28:53.000000000 -0500 +++ open-iscsi-2.0-872-rc4-bnx2i.build/iscsiuio/RELEASE.TXT 2011-09-01 20:33:58.000000000 -0500 @@ -1,7 +1,7 @@ Release Notes Broadcom uIP Linux Driver - Version 0.7.0.12 - 08/04/2011 + Version 0.7.0.14 + 08/23/2011 Broadcom Corporation 5300 California Avenue, @@ -10,6 +10,36 @@ Copyright (c) 2004 - 2011 Broadcom Corporation All rights reserved +uIP v0.7.0.14 (Aug 23, 2011) +======================================================= + Fixes + ----- + 1. Problem: Cont00057840 - RHEL6.2 inbox: Unable to connect to + targets with 5709 + Cause: For cases when the bnx2/bnx2x driver gets removed, the + uio database that was built by cnic would have the device + ->net reference removed. This has caused an unnecessary + timeout of 5s for each stale uio entry in the database. + Change: Adjusted the routine which seeks the device->net entry + to include more logic instead of hard waiting for 5s. + + Enhancements + ------------ + 1. Change: Added support for RHEL6.2 for out-of-box release + 2. Change: Updated the man page with -h and -p info + 3. Change: Updated the -h info + + +uIP v0.7.0.13 (Aug 10, 2011) +======================================================= + Fixes + ----- + 1. Problem: Cont00057768 - iscsiuio logrotate causes daemon failure + Cause: The logrotate script will send a SIGUSR1 signal to notify + the iscsiuio daemon of such action. However, the daemon + wasn't programmed to catch this signal. + Change: Restored the catching of this signal + uIP v0.7.0.12 (Aug 04, 2011) ======================================================= diff -aurp open-iscsi-2.0-872-rc4-bnx2i/iscsiuio/src/unix/iscsid_ipc.c open-iscsi-2.0-872-rc4-bnx2i.build/iscsiuio/src/unix/iscsid_ipc.c --- open-iscsi-2.0-872-rc4-bnx2i/iscsiuio/src/unix/iscsid_ipc.c 2011-09-01 20:28:53.000000000 -0500 +++ open-iscsi-2.0-872-rc4-bnx2i.build/iscsiuio/src/unix/iscsid_ipc.c 2011-09-01 20:33:53.000000000 -0500 @@ -217,18 +217,23 @@ static int parse_iface(void *arg) struct in_addr netmask; int i, prefix_len = 64; struct ip_addr_mask ipam; + struct iface_rec *rec; data = (iscsid_uip_broadcast_t *) arg; + rec = &data->u.iface_rec.rec; LOG_INFO(PFX "Received request for '%s' to set IP address: '%s' " - "VLAN: '%d'", - data->u.iface_rec.rec.netdev, - data->u.iface_rec.rec.ipaddress, data->u.iface_rec.rec.vlan_id); + "VLAN: '%d'", rec->netdev, rec->ipaddress, rec->vlan_id); - vlan = data->u.iface_rec.rec.vlan_id; + vlan = rec->vlan_id; + if (vlan && valid_vlan(vlan) == 0) { + LOG_ERR(PFX "Invalid VLAN tag: %d", rec->vlan_id); + rc = -EIO; + goto early_exit; + } /* Detect for CIDR notation and strip off the netmask if present */ - rc = decode_cidr(data->u.iface_rec.rec.ipaddress, &ipam, &prefix_len); + rc = decode_cidr(rec->ipaddress, &ipam, &prefix_len); if (rc && !ipam.ip_type) { LOG_ERR(PFX "decode_cidr: rc=%d, ipam.ip_type=%d", rc, ipam.ip_type) @@ -251,30 +256,29 @@ static int parse_iface(void *arg) if (i >= 10) { LOG_WARN(PFX "Could not aquire nic_list_mutex lock"); - rc = -EIO; goto early_exit; } /* Check if we can find the NIC device using the netdev * name */ - rc = from_netdev_name_find_nic(data->u.iface_rec.rec.netdev, &nic); + rc = from_netdev_name_find_nic(rec->netdev, &nic); if (rc != 0) { LOG_WARN(PFX "Couldn't find NIC: %s, creating an instance", - data->u.iface_rec.rec.netdev); + rec->netdev); nic = nic_init(); if (nic == NULL) { LOG_ERR(PFX "Couldn't allocate space for NIC %s", - data->u.iface_rec.rec.netdev); + rec->netdev); rc = -ENOMEM; goto done; } strncpy(nic->eth_device_name, - data->u.iface_rec.rec.netdev, + rec->netdev, sizeof(nic->eth_device_name)); nic->config_device_name = nic->eth_device_name; nic->log_name = nic->eth_device_name; @@ -288,7 +292,7 @@ static int parse_iface(void *arg) nic_add(nic); } else { LOG_INFO(PFX " %s, using existing NIC", - data->u.iface_rec.rec.netdev); + rec->netdev); } if (nic->flags & NIC_GOING_DOWN) { @@ -335,12 +339,12 @@ static int parse_iface(void *arg) &transport_name_size); if (strncmp(transport_name, - data->u.iface_rec.rec.transport_name, + rec->transport_name, transport_name_size) != 0) { LOG_ERR(PFX "%s Transport name is not equal " "expected: %s got: %s", nic->log_name, - data->u.iface_rec.rec.transport_name, + rec->transport_name, transport_name); } } else { @@ -548,11 +552,10 @@ enable_nic: LOG_INFO(PFX "ISCSID_UIP_IPC_GET_IFACE: command: %x " "name: %s, netdev: %s ipaddr: %s vlan: %d transport_name:%s", - data->header.command, data->u.iface_rec.rec.name, - data->u.iface_rec.rec.netdev, - (ipam.ip_type == - AF_INET) ? inet_ntoa(ipam.addr4) : ipv6_buf_str, vlan, - data->u.iface_rec.rec.transport_name); + data->header.command, rec->name, rec->netdev, + (ipam.ip_type == AF_INET) ? inet_ntoa(ipam.addr4) : + ipv6_buf_str, + vlan, rec->transport_name); done: pthread_mutex_unlock(&nic_list_mutex); @@ -617,15 +620,15 @@ int process_iscsid_broadcast(int s2) switch (rc) { case 0: rsp.command = cmd; - rsp.err = ISCISD_UIP_MGMT_IPC_DEVICE_UP; + rsp.err = ISCSID_UIP_MGMT_IPC_DEVICE_UP; break; case -EAGAIN: rsp.command = cmd; - rsp.err = ISCISD_UIP_MGMT_IPC_DEVICE_INITIALIZING; + rsp.err = ISCSID_UIP_MGMT_IPC_DEVICE_INITIALIZING; break; default: rsp.command = cmd; - rsp.err = ISCISD_UIP_MGMT_IPC_ERR; + rsp.err = ISCSID_UIP_MGMT_IPC_ERR; } break; diff -aurp open-iscsi-2.0-872-rc4-bnx2i/iscsiuio/src/unix/main.c open-iscsi-2.0-872-rc4-bnx2i.build/iscsiuio/src/unix/main.c --- open-iscsi-2.0-872-rc4-bnx2i/iscsiuio/src/unix/main.c 2011-09-01 20:28:53.000000000 -0500 +++ open-iscsi-2.0-872-rc4-bnx2i.build/iscsiuio/src/unix/main.c 2011-09-01 20:33:42.000000000 -0500 @@ -172,10 +172,10 @@ static void main_usage() printf("\nUsage: %s [OPTION]\n", APP_NAME); printf("\ -Broadcom uIP daemon.\n\ +iscsiuio daemon.\n\ -f, --foreground make the program run in the foreground\n\ -d, --debug debuglevel print debugging information\n\ - -p, --pid=pidfile use pid file (default %s ).\n\ + -p, --pid=pidfile use pid file (default %s).\n\ -h, --help display this help and exit\n\ -v, --version display version and exit\n\ ", default_pid_filepath); @@ -336,6 +336,7 @@ int main(int argc, char *argv[]) sigaddset(&set, SIGINT); sigaddset(&set, SIGQUIT); sigaddset(&set, SIGTERM); + sigaddset(&set, SIGUSR1); rc = pthread_sigmask(SIG_SETMASK, &set, NULL); /* Spin off the signal handling thread */ diff -aurp open-iscsi-2.0-872-rc4-bnx2i/iscsiuio/src/unix/nic_utils.c open-iscsi-2.0-872-rc4-bnx2i.build/iscsiuio/src/unix/nic_utils.c --- open-iscsi-2.0-872-rc4-bnx2i/iscsiuio/src/unix/nic_utils.c 2011-09-01 20:28:53.000000000 -0500 +++ open-iscsi-2.0-872-rc4-bnx2i.build/iscsiuio/src/unix/nic_utils.c 2011-09-01 20:33:37.000000000 -0500 @@ -473,6 +473,7 @@ static int from_uio_find_associated_eth_ char *search_paths[] = { "/sys/class/uio/uio%i/device/", "/sys/class/uio/uio%i/device/net" }; + int path_to[] = { 5, 1 }; int (*search_filters[]) (const struct dirent *) = { filter_net_name, filter_dot_out,}; char *(*extract_name[]) (struct dirent ** files) = { @@ -492,7 +493,7 @@ static int from_uio_find_associated_eth_ /* Build the path to determine uio name */ rc = sprintf(path, search_paths[path_iterator], uio_minor); - wait_for_file_node_timed(nic, path, 5); + wait_for_file_node_timed(nic, path, path_to[path_iterator]); count = scandir(path, &files, search_filters[path_iterator], alphasort); diff -aurp open-iscsi-2.0-872-rc4-bnx2i/iscsiuio/src/unix/options.h open-iscsi-2.0-872-rc4-bnx2i.build/iscsiuio/src/unix/options.h --- open-iscsi-2.0-872-rc4-bnx2i/iscsiuio/src/unix/options.h 2011-09-01 20:28:53.000000000 -0500 +++ open-iscsi-2.0-872-rc4-bnx2i.build/iscsiuio/src/unix/options.h 2011-09-01 20:33:42.000000000 -0500 @@ -78,7 +78,7 @@ #define ETHERTYPE_VLAN 0x8100 /* IEEE 802.1Q VLAN tagging */ #endif /* ETHERTYPE_VLAN */ -#define APP_NAME "uIP" +#define APP_NAME "iscsiuio" /* BUILD_DATE is automatically generated from the Makefile */ #define DEBUG_OFF 0x1