From: Stefan Richter Date: Wed, 10 Aug 2011 22:06:04 +0000 (+0200) Subject: firewire: cdev: fix 32 bit userland on 64 bit kernel compat corner cases X-Git-Tag: v3.1-rc3~38^2~1 X-Git-Url: http://git.openpandora.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=9c1176b6a28850703ea6e3a0f0c703f6d6c61cd3;p=pandora-kernel.git firewire: cdev: fix 32 bit userland on 64 bit kernel compat corner cases Clemens points out that we need to use compat_ptr() in order to safely cast from u64 to addresses of a 32-bit usermode client. Before, our conversion went wrong - in practice if the client cast from pointer to integer such that sign-extension happened, (libraw1394 and libdc1394 at least were not doing that, IOW were not affected) or - in theory on s390 (which doesn't have FireWire though) and on the tile architecture, regardless of what the client does. The bug would usually be observed as the initial get_info ioctl failing with "Bad address" (EFAULT). Reported-by: Carl Karsten Reported-by: Clemens Ladisch Signed-off-by: Stefan Richter --- Reading git-diff-tree failed