Hello community, here is the log from the commit of package open-iscsi for openSUSE:Factory checked in at 2017-06-07 09:51:43 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/open-iscsi (Old) and /work/SRC/openSUSE:Factory/.open-iscsi.new (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Package is "open-iscsi" Wed Jun 7 09:51:43 2017 rev:62 rq:499820 version:unknown Changes: -------- --- /work/SRC/openSUSE:Factory/open-iscsi/open-iscsi.changes 2017-05-04 08:54:53.016913508 +0200 +++ /work/SRC/openSUSE:Factory/.open-iscsi.new/open-iscsi.changes 2017-06-07 09:51:44.557892627 +0200 @@ -1,0 +2,6 @@ +Fri May 26 16:03:54 UTC 2017 - lduncan@suse.com + +- Added two iscsiuio upstream commits, for ipv6 + support, and general bug fixes (bsc#1040559) + +------------------------------------------------------------------- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ open-iscsi-SUSE-latest.diff.bz2 ++++++ --- /var/tmp/diff_new_pack.b9KXR1/_old 2017-06-07 09:51:45.041824238 +0200 +++ /var/tmp/diff_new_pack.b9KXR1/_new 2017-06-07 09:51:45.049823107 +0200 @@ -1129,6 +1129,34 @@ AM_INIT_AUTOMAKE AC_CONFIG_HEADER(config.h) +diff --git a/iscsiuio/src/apps/dhcpc/dhcpv6.c b/iscsiuio/src/apps/dhcpc/dhcpv6.c +index a4e25f0bdbbd..461af0ec2a11 100644 +--- a/iscsiuio/src/apps/dhcpc/dhcpv6.c ++++ b/iscsiuio/src/apps/dhcpc/dhcpv6.c +@@ -153,7 +153,7 @@ static u16_t dhcpv6_init_packet(struct dhcpv6_context *context, u8_t type) + if (dhcpv6->dhcpv6_type != type) + context->dhcpv6_transaction_id++; + +- dhcpv6->dhcpv6_trans_id = context->dhcpv6_transaction_id; ++ dhcpv6->dhcpv6_trans_id = HOST_TO_NET16(context->dhcpv6_transaction_id); + dhcpv6->dhcpv6_type = type; + + /* Keep track of length of all DHCP options. */ +@@ -265,8 +265,13 @@ void ipv6_udp_handle_dhcp(struct dhcpv6_context *context) + dhcpv6 = (union dhcpv6_hdr *)((u8_t *)context->udp + + sizeof(struct udp_hdr)); + +- if (dhcpv6->dhcpv6_trans_id != context->dhcpv6_transaction_id) ++ if (dhcpv6->dhcpv6_trans_id != ++ HOST_TO_NET16(context->dhcpv6_transaction_id)) { ++ LOG_ERR("DHCPv6 transaction-id error, sent %x, received %x", ++ HOST_TO_NET16(context->dhcpv6_transaction_id), ++ dhcpv6->dhcpv6_trans_id); + return; ++ } + + dhcpv6_len = + NET_TO_HOST16(context->udp->length) - sizeof(struct udp_hdr); diff --git a/iscsiuio/src/unix/libs/Makefile.am b/iscsiuio/src/unix/libs/Makefile.am index 890415f5a79a..737546b04917 100644 --- a/iscsiuio/src/unix/libs/Makefile.am @@ -1140,8 +1168,76 @@ - bnx2x.c + bnx2x.c \ + qedi.c +diff --git a/iscsiuio/src/unix/libs/bnx2x.c b/iscsiuio/src/unix/libs/bnx2x.c +index 19cbcecaacca..1e8f532edcdf 100644 +--- a/iscsiuio/src/unix/libs/bnx2x.c ++++ b/iscsiuio/src/unix/libs/bnx2x.c +@@ -1316,7 +1316,6 @@ void bnx2x_start_xmit(nic_t *nic, size_t len, u16_t vlan_id) + if ((rx_bd->addr_hi == 0) && (rx_bd->addr_lo == 0)) { + LOG_PACKET(PFX "%s: trying to transmit when device is closed", + nic->log_name); +- pthread_mutex_unlock(&nic->xmit_mutex); + return; + } + +@@ -1343,12 +1342,9 @@ void bnx2x_start_xmit(nic_t *nic, size_t len, u16_t vlan_id) + (bp->tx_bd_prod << 16)); + bnx2x_flush_doorbell(bp, bp->tx_doorbell); + } else { +- /* If the doorbell is not rung, the packet will not +- get sent. Hence, the xmit_mutex lock will not +- get freed. +- */ +- pthread_mutex_unlock(&nic->xmit_mutex); ++ LOG_ERR(PFX "Pkt transmission failed."); + } ++ + LOG_PACKET(PFX "%s: sent %d bytes using bp->tx_prod: %d", + nic->log_name, len, bp->tx_prod); + } +@@ -1412,6 +1408,8 @@ int bnx2x_write(nic_t *nic, nic_interface_t *nic_iface, packet_t *pkt) + nic->log_name, pkt->buf_size, + bp->tx_cons, bp->tx_prod, bp->tx_bd_prod); + ++ pthread_mutex_unlock(&nic->xmit_mutex); ++ + return 0; + } + +@@ -1560,17 +1558,16 @@ static int bnx2x_clear_tx_intr(nic_t *nic) + hw_cons = bp->get_tx_cons(bp); + + if (bp->tx_cons == hw_cons) { +- if (bp->tx_cons == bp->tx_prod) { +- /* Make sure the xmit_mutex lock is unlock */ +- if (pthread_mutex_trylock(&nic->xmit_mutex)) +- LOG_ERR(PFX "bnx2x tx lock with prod == cons"); +- +- pthread_mutex_unlock(&nic->xmit_mutex); ++ if (bp->tx_cons == bp->tx_prod) + return 0; +- } + return -EAGAIN; + } + ++ if (pthread_mutex_trylock(&nic->xmit_mutex)) { ++ LOG_ERR(PFX "%s: unable to get xmit_mutex.", nic->log_name); ++ return -EINVAL; ++ } ++ + LOG_PACKET(PFX "%s: clearing tx interrupt [%d %d]", + nic->log_name, bp->tx_cons, hw_cons); + bp->tx_cons = hw_cons; +@@ -1600,6 +1597,7 @@ static int bnx2x_clear_tx_intr(nic_t *nic) + nic->log_name, pkt->buf_size, + bp->tx_cons, bp->tx_prod, bp->tx_bd_prod); + ++ pthread_mutex_unlock(&nic->xmit_mutex); + return 0; + } + diff --git a/iscsiuio/src/unix/libs/cnic.c b/iscsiuio/src/unix/libs/cnic.c -index 228c4b9e25b1..5d60f898ad57 100644 +index 228c4b9e25b1..a009f25f0814 100644 --- a/iscsiuio/src/unix/libs/cnic.c +++ b/iscsiuio/src/unix/libs/cnic.c @@ -55,6 +55,7 @@ @@ -1174,6 +1270,43 @@ /****************************************************************************** * Netlink Functions ******************************************************************************/ +@@ -132,6 +141,7 @@ static int cnic_arp_send(nic_t *nic, nic_interface_t *nic_iface, int fd, + memcpy(&addr.s_addr, &dst_ip, sizeof(addr.s_addr)); + LOG_DEBUG(PFX "%s: Sent cnic arp request for IP: %s", + nic->log_name, addr_str); ++ pthread_mutex_unlock(&nic->xmit_mutex); + + return 0; + } +@@ -195,6 +205,8 @@ static int cnic_neigh_soliciation_send(nic_t *nic, + LOG_DEBUG(PFX "%s: Sent cnic ICMPv6 neighbor request %s", + nic->log_name, addr_str); + ++ pthread_mutex_unlock(&nic->xmit_mutex); ++ + return 0; + } + +@@ -424,9 +436,6 @@ done: + rc = -EIO; + } + +- if (status != 0 || rc != 0) +- pthread_mutex_unlock(&nic->xmit_mutex); +- + if (ev) { + cnic_nl_neigh_rsp(nic, fd, ev, path, mac_addr, + nic_iface, status, AF_INET); +@@ -623,9 +632,6 @@ done: + rc = -EIO; + } + +- if (status != 0 || rc != 0) +- pthread_mutex_unlock(&nic->xmit_mutex); +- + if (ev) { + cnic_nl_neigh_rsp(nic, fd, ev, path, mac_addr, + nic_iface, status, AF_INET6); diff --git a/iscsiuio/src/unix/libs/cnic.h b/iscsiuio/src/unix/libs/cnic.h index 6244a94012c1..c86595c512b0 100644 --- a/iscsiuio/src/unix/libs/cnic.h @@ -1189,10 +1322,10 @@ void cnic_nl_close(); diff --git a/iscsiuio/src/unix/libs/qedi.c b/iscsiuio/src/unix/libs/qedi.c new file mode 100644 -index 000000000000..c2096e59dad1 +index 000000000000..c6ff6e7724a3 --- /dev/null +++ b/iscsiuio/src/unix/libs/qedi.c -@@ -0,0 +1,1151 @@ +@@ -0,0 +1,1154 @@ +/* + * Copyright (c) 2016, Cavium Inc. + * @@ -2082,7 +2215,6 @@ + nic->log_name, len, bp->tx_prod); + } else { + LOG_ERR(PFX "Pkt transmission failed: %d", rc); -+ pthread_mutex_unlock(&nic->xmit_mutex); + } + + free(ubuf); @@ -2145,6 +2277,10 @@ + nic->log_name, pkt->buf_size, + bp->tx_cons, bp->tx_prod, bp->tx_bd_prod); + ++ LOG_DEBUG(PFX "%s: host:%d - releasing xmit mutex", ++ nic->log_name, nic->host_no); ++ pthread_mutex_unlock(&nic->xmit_mutex); ++ + return 0; +} + @@ -2254,17 +2390,16 @@ + hw_cons = uctrl->hw_tx_cons; + + if (bp->tx_cons == hw_cons) { -+ if (bp->tx_cons == bp->tx_prod) { -+ /* Make sure the xmit_mutex lock is unlock */ -+ if (pthread_mutex_trylock(&nic->xmit_mutex)) -+ LOG_ERR(PFX "qedi tx lock with prod == cons"); -+ -+ pthread_mutex_unlock(&nic->xmit_mutex); ++ if (bp->tx_cons == bp->tx_prod) + return 0; -+ } + return -EAGAIN; + } + ++ if (pthread_mutex_trylock(&nic->xmit_mutex)) { ++ LOG_ERR(PFX "%s: unable to get xmit_mutex.", nic->log_name); ++ return -EINVAL; ++ } ++ + LOG_PACKET(PFX "%s: clearing tx interrupt [%d %d]", + nic->log_name, bp->tx_cons, hw_cons); + bp->tx_cons = hw_cons; @@ -2294,6 +2429,7 @@ + nic->log_name, pkt->buf_size, + bp->tx_cons, bp->tx_prod, bp->tx_bd_prod); + ++ pthread_mutex_unlock(&nic->xmit_mutex); + return 0; + } + @@ -2889,10 +3025,10 @@ rm -rf $DESTDIR if [ "$TMPDIR" ] ; then diff --git a/rpm/open-iscsi.changes b/rpm/open-iscsi.changes -index 65f4171e0bae..ba7ae654ab0a 100644 +index 65f4171e0bae..3af3ffc25dbc 100644 --- a/rpm/open-iscsi.changes +++ b/rpm/open-iscsi.changes -@@ -1,173 +1,269 @@ +@@ -1,173 +1,275 @@ ------------------------------------------------------------------- -Thu Nov 17 01:48:22 UTC 2016 - lduncan@suse.com - @@ -3040,6 +3176,12 @@ - -------------------------------------------------------------------- -Tue Nov 25 11:43:03 PST 2014 - lduncan@suse.com ++Fri May 26 16:03:54 UTC 2017 - lduncan@suse.com ++ ++- Added two iscsiuio upstream commits, for ipv6 ++ support, and general bug fixes (bsc#1040559) ++ ++------------------------------------------------------------------- +Fri Apr 28 23:13:20 UTC 2017 - lduncan@suse.com + +- Added support for qedi ping (bsc#1036238) @@ -3317,7 +3459,7 @@ ------------------------------------------------------------------- Tue Jul 8 16:27:39 CEST 2014 - hare@suse.de -@@ -203,13 +299,13 @@ Wed May 28 15:26:29 CEST 2014 - hare@suse.de +@@ -203,13 +305,13 @@ Wed May 28 15:26:29 CEST 2014 - hare@suse.de Fri May 2 15:07:14 2014 +0200 - hare@suse.de - iscsi_offload: do not print error messages for be2iscsi @@ -3334,7 +3476,7 @@ - Added two not-yet-upstream patches for iscsiuio/systemd activation from Chris Leech (bnc#869567): -@@ -218,67 +314,73 @@ Mon Apr 28 11:00:03 PDT 2014 - lduncan@suse.com +@@ -218,67 +320,73 @@ Mon Apr 28 11:00:03 PDT 2014 - lduncan@suse.com Updated spec file to handle install/package of new files. -------------------------------------------------------------------