Commit c82f91f2 authored by Jay Fenlason's avatar Jay Fenlason Committed by Stefan Richter

firewire: expose extended tcode of incoming lock requests to (userspace) drivers

When a remote device does a LOCK_REQUEST, the core does not pass
the extended tcode to userspace.  This patch makes it use the
juju-specific tcodes listed in firewire-constants.h for incoming
requests.
Signed-off-by: default avatarJay Fenlason <fenlason@redhat.com>

This matches how tcode in the API for outbound requests is treated.
Affects kernelspace and userspace drivers alike, but at the moment there
are no kernespace drivers that receive lock requests.

Split out from a combo patch, slightly reordered, changelog reworded.
Signed-off-by: default avatarStefan Richter <stefanr@s5r6.in-berlin.de>
parent 604f4516
...@@ -780,9 +780,11 @@ static void handle_exclusive_region_request(struct fw_card *card, ...@@ -780,9 +780,11 @@ static void handle_exclusive_region_request(struct fw_card *card,
unsigned long flags; unsigned long flags;
int tcode, destination, source; int tcode, destination, source;
tcode = HEADER_GET_TCODE(p->header[0]);
destination = HEADER_GET_DESTINATION(p->header[0]); destination = HEADER_GET_DESTINATION(p->header[0]);
source = HEADER_GET_SOURCE(p->header[1]); source = HEADER_GET_SOURCE(p->header[1]);
tcode = HEADER_GET_TCODE(p->header[0]);
if (tcode == TCODE_LOCK_REQUEST)
tcode = 0x10 + HEADER_GET_EXTENDED_TCODE(p->header[3]);
spin_lock_irqsave(&address_handler_lock, flags); spin_lock_irqsave(&address_handler_lock, flags);
handler = lookup_enclosing_address_handler(&address_handler_list, handler = lookup_enclosing_address_handler(&address_handler_list,
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment