aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/firewire/fw-transaction.c
diff options
context:
space:
mode:
authorKristian Høgsberg <krh@redhat.com>2007-01-26 00:38:34 -0500
committerStefan Richter <stefanr@s5r6.in-berlin.de>2007-03-09 22:02:47 +0100
commite5f49c3b837ff90c8aec2c6c66c4966080aced06 (patch)
tree16f6cb30602b9e63b9dc3a0a4ef8b56dcaf10346 /drivers/firewire/fw-transaction.c
parentfirewire: Handle access to CSR resources on local node. (diff)
downloadlinux-dev-e5f49c3b837ff90c8aec2c6c66c4966080aced06.tar.xz
linux-dev-e5f49c3b837ff90c8aec2c6c66c4966080aced06.zip
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>
Diffstat (limited to 'drivers/firewire/fw-transaction.c')
-rw-r--r--drivers/firewire/fw-transaction.c12
1 files changed, 6 insertions, 6 deletions
diff --git a/drivers/firewire/fw-transaction.c b/drivers/firewire/fw-transaction.c
index 780ed2b44983..8387c8ea6735 100644
--- a/drivers/firewire/fw-transaction.c
+++ b/drivers/firewire/fw-transaction.c
@@ -93,15 +93,15 @@ transmit_complete_callback(struct fw_packet *packet,
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;
}
}