diff options
author | Karsten Graul <kgraul@linux.ibm.com> | 2019-02-12 18:29:50 +0300 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2019-02-12 19:59:44 +0300 |
commit | 4dff63c25ebf8963065323964cf1c24e290b6ced (patch) | |
tree | 7e674c34dd49195edc6c5dd699566e9363017652 /net/smc | |
parent | 0ff8409b521b7b315bd69c4f1fbff024dc6219f6 (diff) | |
download | linux-4dff63c25ebf8963065323964cf1c24e290b6ced.tar.xz |
net/smc: reset cursor update required flag
When an updated rx_cursor_confirmed field was sent to the peer then
reset the cons_curs_upd_req flag. And remove the duplicate reset and
cursor update in smc_tx_consumer_update().
Signed-off-by: Karsten Graul <kgraul@linux.ibm.com>
Signed-off-by: Ursula Braun <ubraun@linux.ibm.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'net/smc')
-rw-r--r-- | net/smc/smc_cdc.c | 5 | ||||
-rw-r--r-- | net/smc/smc_tx.c | 3 |
2 files changed, 4 insertions, 4 deletions
diff --git a/net/smc/smc_cdc.c b/net/smc/smc_cdc.c index a712c9f8699b..99d9d6e85dfb 100644 --- a/net/smc/smc_cdc.c +++ b/net/smc/smc_cdc.c @@ -105,8 +105,10 @@ int smc_cdc_msg_send(struct smc_connection *conn, &conn->local_tx_ctrl, conn); smc_curs_copy(&cfed, &((struct smc_host_cdc_msg *)wr_buf)->cons, conn); rc = smc_wr_tx_send(link, (struct smc_wr_tx_pend_priv *)pend); - if (!rc) + if (!rc) { smc_curs_copy(&conn->rx_curs_confirmed, &cfed, conn); + conn->local_rx_ctrl.prod_flags.cons_curs_upd_req = 0; + } return rc; } @@ -194,6 +196,7 @@ int smcd_cdc_msg_send(struct smc_connection *conn) if (rc) return rc; smc_curs_copy(&conn->rx_curs_confirmed, &curs, conn); + conn->local_rx_ctrl.prod_flags.cons_curs_upd_req = 0; /* Calculate transmitted data and increment free send buffer space */ diff = smc_curs_diff(conn->sndbuf_desc->len, &conn->tx_curs_fin, &conn->tx_curs_sent); diff --git a/net/smc/smc_tx.c b/net/smc/smc_tx.c index f93f3580c100..ce9586bce364 100644 --- a/net/smc/smc_tx.c +++ b/net/smc/smc_tx.c @@ -610,9 +610,6 @@ void smc_tx_consumer_update(struct smc_connection *conn, bool force) SMC_TX_WORK_DELAY); return; } - smc_curs_copy(&conn->rx_curs_confirmed, - &conn->local_tx_ctrl.cons, conn); - conn->local_rx_ctrl.prod_flags.cons_curs_upd_req = 0; } if (conn->local_rx_ctrl.prod_flags.write_blocked && !atomic_read(&conn->bytes_to_rcv)) |