firewire: Sanitize send error codes.

Drop the negative errnos and use RCODEs for all error codes
in the complete transaction callback.

Signed-off-by: Kristian Høgsberg <krh@redhat.com>
Signed-off-by: Stefan Richter <stefanr@s5r6.in-berlin.de>
diff --git a/drivers/firewire/fw-transaction.c b/drivers/firewire/fw-transaction.c
index 780ed2b..8387c8e 100644
--- a/drivers/firewire/fw-transaction.c
+++ b/drivers/firewire/fw-transaction.c
@@ -93,15 +93,15 @@
 		close_transaction(t, card, RCODE_BUSY, NULL, 0);
 		break;
 	case ACK_DATA_ERROR:
+		close_transaction(t, card, RCODE_DATA_ERROR, NULL, 0);
+		break;
 	case ACK_TYPE_ERROR:
-		close_transaction(t, card, RCODE_SEND_ERROR, NULL, 0);
+		close_transaction(t, card, RCODE_TYPE_ERROR, NULL, 0);
 		break;
 	default:
-		/* FIXME: In this case, status is a negative errno,
-		 * corresponding to an OHCI specific transmit error
-		 * code.  We should map that to an RCODE instead of
-		 * just the generic RCODE_SEND_ERROR. */
-		close_transaction(t, card, RCODE_SEND_ERROR, NULL, 0);
+		/* In this case the ack is really a juju specific
+		 * rcode, so just forward that to the callback. */
+		close_transaction(t, card, status, NULL, 0);
 		break;
 	}
 }