diff options
author | Clemens Ladisch <clemens@ladisch.de> | 2010-04-12 04:35:30 -0400 |
---|---|---|
committer | Stefan Richter <stefanr@s5r6.in-berlin.de> | 2010-04-19 13:58:32 -0400 |
commit | 2608203daf5f87311c6e5d36e5de5efcb14aab24 (patch) | |
tree | f0060813795c68ab988a998c4cced16d67139ded /drivers/firewire/ohci.c | |
parent | d6372b6e7c6142e6cc2108b3b850584cd7ade106 (diff) |
firewire: ohci: prevent aliasing of locally handled register addresses
We must compute the offset from the CSR register base with the
full 48 address bits to prevent matching with addresses whose
lower 32 bits happen to be equal with one of the specially
handled registers.
Signed-off-by: Clemens Ladisch <clemens@ladisch.de>
Signed-off-by: Stefan Richter <stefanr@s5r6.in-berlin.de>
Diffstat (limited to 'drivers/firewire/ohci.c')
-rw-r--r-- | drivers/firewire/ohci.c | 3 |
1 files changed, 1 insertions, 2 deletions
diff --git a/drivers/firewire/ohci.c b/drivers/firewire/ohci.c index e33917bf97d2..82fb2e7e99ef 100644 --- a/drivers/firewire/ohci.c +++ b/drivers/firewire/ohci.c | |||
@@ -1198,8 +1198,7 @@ static void handle_local_lock(struct fw_ohci *ohci, | |||
1198 | 1198 | ||
1199 | static void handle_local_request(struct context *ctx, struct fw_packet *packet) | 1199 | static void handle_local_request(struct context *ctx, struct fw_packet *packet) |
1200 | { | 1200 | { |
1201 | u64 offset; | 1201 | u64 offset, csr; |
1202 | u32 csr; | ||
1203 | 1202 | ||
1204 | if (ctx == &ctx->ohci->at_request_ctx) { | 1203 | if (ctx == &ctx->ohci->at_request_ctx) { |
1205 | packet->ack = ACK_PENDING; | 1204 | packet->ack = ACK_PENDING; |