Browse Source

NTB: ntb_process_tx error path bug

The transmit overrun avoidance error path in ntb_process_tx accidentally
swapped the first two values being passed to the tx_handler client.
This could result in crashes in the ntb_netdev (or other out-of-tree NTB
clients).

Reported-by: Alex Depoutovitch <alex@pernixdata.com>
Signed-off-by: Jon Mason <jdmason@kudzu.us>
Jon Mason 9 years ago
parent
commit
179f912a39
1 changed files with 1 additions and 1 deletions
  1. 1 1
      drivers/ntb/ntb_transport.c

+ 1 - 1
drivers/ntb/ntb_transport.c

@@ -1532,7 +1532,7 @@ static int ntb_process_tx(struct ntb_transport_qp *qp,
 
 
 	if (entry->len > qp->tx_max_frame - sizeof(struct ntb_payload_header)) {
 	if (entry->len > qp->tx_max_frame - sizeof(struct ntb_payload_header)) {
 		if (qp->tx_handler)
 		if (qp->tx_handler)
-			qp->tx_handler(qp->cb_data, qp, NULL, -EIO);
+			qp->tx_handler(qp, qp->cb_data, NULL, -EIO);
 
 
 		ntb_list_add(&qp->ntb_tx_free_q_lock, &entry->entry,
 		ntb_list_add(&qp->ntb_tx_free_q_lock, &entry->entry,
 			     &qp->tx_free_q);
 			     &qp->tx_free_q);