|
@@ -448,9 +448,7 @@ static void smc_tx_work(struct work_struct *work)
|
|
|
void smc_tx_consumer_update(struct smc_connection *conn)
|
|
|
{
|
|
|
union smc_host_cursor cfed, cons;
|
|
|
- struct smc_cdc_tx_pend *pend;
|
|
|
- struct smc_wr_buf *wr_buf;
|
|
|
- int to_confirm, rc;
|
|
|
+ int to_confirm;
|
|
|
|
|
|
smc_curs_write(&cons,
|
|
|
smc_curs_read(&conn->local_tx_ctrl.cons, conn),
|
|
@@ -464,10 +462,7 @@ void smc_tx_consumer_update(struct smc_connection *conn)
|
|
|
((to_confirm > conn->rmbe_update_limit) &&
|
|
|
((to_confirm > (conn->rmbe_size / 2)) ||
|
|
|
conn->local_rx_ctrl.prod_flags.write_blocked))) {
|
|
|
- rc = smc_cdc_get_free_slot(conn, &wr_buf, &pend);
|
|
|
- if (!rc)
|
|
|
- rc = smc_cdc_msg_send(conn, wr_buf, pend);
|
|
|
- if (rc < 0) {
|
|
|
+ if (smc_cdc_get_slot_and_msg_send(conn) < 0) {
|
|
|
schedule_delayed_work(&conn->tx_work,
|
|
|
SMC_TX_WORK_DELAY);
|
|
|
return;
|