Skip to content

Commit

Permalink
firewire: cdev: simplify FW_CDEV_IOC_SEND_REQUEST return value
Browse files Browse the repository at this point in the history
This changes the ioctl() return value of FW_CDEV_IOC_SEND_REQUEST and of
the as yet unreleased FW_CDEV_IOC_SEND_BROADCAST_REQUEST.  They used to
return
	sizeof(struct fw_cdev_send_request *) + data_length

which is obviously a failed attempt to emulate the return value of
raw1394's respective interface which uses write() instead of ioctl().

However, the first summand, as size of a kernel pointer, is entirely
meaningless to clients and the second summand is already known to
clients.  And the result does not resemble raw1394's write() return
code anyway.

So simplify it to a constant non-negative value, i.e. 0.  The only
dangers here would be that future client implementations check for error
by ret != 0 instead of ret < 0 when running on top of an old kernel; or
that current clients interpret ret = 0 or more as failure.  But both are
hypothetical cases which don't justify to return irritating values.

While we touch this code, also remove "& 0x1f" from tcode in the call of
fw_send_request.  The tcode cannot be bigger than 0x1f at this point.

Signed-off-by: Stefan Richter <stefanr@s5r6.in-berlin.de>
  • Loading branch information
Stefan Richter committed Mar 24, 2009
1 parent 207fbef commit 664d801
Showing 1 changed file with 4 additions and 8 deletions.
12 changes: 4 additions & 8 deletions drivers/firewire/fw-cdev.c
Original file line number Diff line number Diff line change
Expand Up @@ -549,15 +549,11 @@ static int init_request(struct client *client,
client_get(client);

fw_send_request(client->device->card, &e->r.transaction,
request->tcode & 0x1f, destination_id,
request->generation, speed, request->offset,
e->response.data, request->length,
complete_transaction, e);
request->tcode, destination_id, request->generation,
speed, request->offset, e->response.data,
request->length, complete_transaction, e);
return 0;

if (request->data)
return sizeof(request) + request->length;
else
return sizeof(request);
failed:
kfree(e);

Expand Down

0 comments on commit 664d801

Please sign in to comment.