]> err.no Git - linux-2.6/commit
ieee1394: raw1394: Fix write() for 32bit userland on 64bit kernel
authorPetr Vandrovec <petr@vandrovec.name>
Mon, 7 May 2007 02:14:47 +0000 (04:14 +0200)
committerStefan Richter <stefanr@s5r6.in-berlin.de>
Mon, 9 Jul 2007 22:07:37 +0000 (00:07 +0200)
commit883b97eaf2a3fba7628f9f78ca7dc422aaf9728b
treed7e4c1e569e29125f07380d8815b1706b8fb1a76
parentee9be425961c3ccf75553c83a73bf1f707e66d91
ieee1394: raw1394: Fix write() for 32bit userland on 64bit kernel

* write(fd, buf, 52) from 32bit app was returning 56.  Most of callers did not
  care, but some (arm registration) did, and anyway it looks bad if request for
  writing 52 bytes returns 56.  And returning sizeof anything in 'int' is not
  good as well.  So all functions now return '0' instead of
  sizeof(struct raw1394_request) on success, and write() itself provides correct
  return value (it just returns value it was asked to write on success as raw1394
  does not do any partial writes at all).

* Related to this was problem that write() could have returned 0 when kernel
  state would become corrupted and moved to different state than
  opened/initialized/connected.  Now it returns -EBADFD which seemed appropriate.

Signed-off-by: Petr Vandrovec <petr@vandrovec.name>
Acked-by: Dan Dennedy <dan@dennedy.org>
Signed-off-by: Stefan Richter <stefanr@s5r6.in-berlin.de> (split into 3 patches)
drivers/ieee1394/raw1394.c