summaryrefslogtreecommitdiff
path: root/iscsiuio
diff options
context:
space:
mode:
authorLee Duncan <leeman.duncan@gmail.com>2018-11-26 16:41:51 -0800
committerGitHub <noreply@github.com>2018-11-26 16:41:51 -0800
commit7365218437ecf8c03860e34c002c76871abf9943 (patch)
tree2da28d4f4cc6f01324d174391d0dfb86ea025907 /iscsiuio
parent0ec3a81158ef32da0a2866f8e2cc2ab02f2e3662 (diff)
parentde6e8918c6c195360d87a96c196cccef2c082527 (diff)
downloadopen-iscsi-7365218437ecf8c03860e34c002c76871abf9943.tar.gz
Merge pull request #148 from njavali/iscsiuio-bug-fixes
iscsiuio bug fixes
Diffstat (limited to 'iscsiuio')
-rw-r--r--iscsiuio/README4
-rw-r--r--iscsiuio/RELEASE.TXT26
-rw-r--r--iscsiuio/configure.ac4
-rw-r--r--iscsiuio/src/unix/libs/qedi.c12
-rw-r--r--iscsiuio/src/unix/nic.c2
5 files changed, 39 insertions, 9 deletions
diff --git a/iscsiuio/README b/iscsiuio/README
index 9cbf7ce..1915005 100644
--- a/iscsiuio/README
+++ b/iscsiuio/README
@@ -1,6 +1,6 @@
Iscsiuio Userspace Tool
-Version 0.7.8.4
-Feb 22, 2018
+Version 0.7.8.5
+Nov 20, 2018
------------------------------------------------------
This tool is to be used in conjunction with the QLogic NetXtreme II Linux
diff --git a/iscsiuio/RELEASE.TXT b/iscsiuio/RELEASE.TXT
index ca51b26..0ebf27f 100644
--- a/iscsiuio/RELEASE.TXT
+++ b/iscsiuio/RELEASE.TXT
@@ -1,7 +1,7 @@
Release Notes
QLogic uIP Linux Driver
- Version 0.7.8.4
- 2/22/2018
+ Version 0.7.8.5
+ 11/20/2018
QLogic Corporation
26650 Aliso Viejo Pkwy,
@@ -11,7 +11,29 @@
Copyright (c) 2014, QLogic Corporation
All rights reserved
+uIP v0.7.8.5 (Nov 20, 2018)
+=======================================================
+ Fixes:
+ -------
+ 1. Problem: CQ102578: observing ISCSI initiator IP ping drop
+ Change: 1. Do not flush tx queue on each uio interrupt
+ 2. Use UIO BD index instead on buffer index.
+ 3. Set buf_size in case of ICMP and ARP packet
+ Impact: QL41xxx adapters
+
+ 2. Problem: CQ103034 - Unable to boot iSCSI BFS in IPv6 DHCP config
+ Change: Limit retries of performing dhcpv6 before declaring dhcp failure
+ Impact: All
+
+ 3. Problem: CQ102438: I/O fails to resume on multipath LUN during port toggle.
+ Change: lib/cnic, lib/qedi, Release xmit_mutex in error code path and
+ during clear tx queue.
+ Impact: QL84xx adapters
+ 4. Problem: Netlink buffer corruption when more than one host
+ try to xmit packet at the same time
+ Change: Add inter-host mutex while doing xmit
+ Impact: All
uIP v0.7.8.4 (Feb 22, 2018)
=======================================================
diff --git a/iscsiuio/configure.ac b/iscsiuio/configure.ac
index fa67ea7..ae23078 100644
--- a/iscsiuio/configure.ac
+++ b/iscsiuio/configure.ac
@@ -12,9 +12,9 @@ dnl Benjamin Li (benli@broadcom.com)
dnl
PACKAGE=iscsiuio
-VERSION=0.7.8.4
+VERSION=0.7.8.5
-AC_INIT([iscsiuio], [0.7.8.4], [QLogic-Storage-Upstream@cavium.com])
+AC_INIT([iscsiuio], [0.7.8.5], [QLogic-Storage-Upstream@cavium.com])
AM_INIT_AUTOMAKE
AC_CONFIG_HEADER(config.h)
diff --git a/iscsiuio/src/unix/libs/qedi.c b/iscsiuio/src/unix/libs/qedi.c
index 3aa2de7..b7595d5 100644
--- a/iscsiuio/src/unix/libs/qedi.c
+++ b/iscsiuio/src/unix/libs/qedi.c
@@ -994,7 +994,7 @@ static int qedi_read(nic_t *nic, packet_t *pkt)
void *rx_pkt;
int rc = 0;
uint32_t sw_cons, bd_cons;
- uint32_t hw_prod;
+ uint32_t hw_prod, bd_prod;
uint32_t rx_pkt_idx;
int len;
struct qedi_rx_bd *rx_bd;
@@ -1013,14 +1013,20 @@ static int qedi_read(nic_t *nic, packet_t *pkt)
msync(bp->rx_comp_ring, nic->page_size, MS_SYNC);
uctrl = (struct qedi_uio_ctrl *)bp->uctrl_map;
hw_prod = uctrl->hw_rx_prod;
+ bd_prod = uctrl->hw_rx_bd_prod;
sw_cons = uctrl->host_rx_cons;
bd_cons = uctrl->host_rx_bd_cons;
- rx_bd = bp->rx_comp_ring + (bd_cons * sizeof(*rx_bd));
+ rx_bd = bp->rx_comp_ring + (bd_prod * sizeof(*rx_bd));
len = rx_bd->rx_pkt_len;
rx_pkt_idx = rx_bd->rx_pkt_index;
vlan_id = rx_bd->vlan_id;
- if (sw_cons != hw_prod) {
+ LOG_DEBUG(PFX "%s:hw_prod %d bd_prod %d, rx_pkt_idx %d, rxlen %d",
+ nic->log_name, hw_prod, bd_prod, rx_bd->rx_pkt_index, len);
+ LOG_DEBUG(PFX "%s: sw_con %d bd_cons %d num BD %d",
+ nic->log_name, sw_cons, bd_cons, QEDI_NUM_RX_BD);
+
+ if (bd_cons != bd_prod) {
LOG_DEBUG(PFX "%s: clearing rx interrupt: %d %d",
nic->log_name, sw_cons, hw_prod);
rc = 1;
diff --git a/iscsiuio/src/unix/nic.c b/iscsiuio/src/unix/nic.c
index 29c4332..bd415c2 100644
--- a/iscsiuio/src/unix/nic.c
+++ b/iscsiuio/src/unix/nic.c
@@ -1122,6 +1122,7 @@ nic_iface_present:
* network, the global variable uip_len is
* set to a value > 0. */
if (ustack->uip_len > 0) {
+ pkt->buf_size = ustack->uip_len;
prepare_ipv4_packet(nic, nic_iface,
ustack, pkt);
@@ -1139,6 +1140,7 @@ nic_iface_present:
* network, the global variable uip_len
* is set to a value > 0. */
if (pkt->buf_size > 0) {
+ pkt->buf_size = ustack->uip_len;
LOG_DEBUG(PFX "%s: write called after arp_arpin, bufsize=%d",
nic->log_name, pkt->buf_size);
(*nic->ops->write) (nic, nic_iface, pkt);