On Wed, 21 Feb 2007, Ralf Baechle wrote: > On Wed, Feb 21, 2007 at 01:04:51PM -0800, Davide Libenzi wrote: > > > > Oh, we can. "put_user()" and "get_user()" already have to work on totally > > > unaligned data. If some architecture has problems with that, they have > > > bigger issues, methinks. > > > > > > We can't trust user pointers, and that includes not trusting them being > > > aligned. > > > > Don't we get EFAULT in case of exception (access or alignment) in there? > > For "dealing with", here we'd need them to do the correct thing > > (split-load?) in case of mis-aligned access. > > On an architecture which doesn't transparently handle missalignment the > best approach is to have the unalignment exception handler fix things > such that the 99.999% common case of properly aligned get_user/put_user > doesn't have to care. A few nasty architectures (Afair old ARM and the > b0rked R5900 in the Playstation 2 for 128-bit integer loads) however > don't throw exceptions so __get_user / __put_user have to handle the > problem manually which of course adds considerable overhead to the common > case.
Exactly. But at that point it'd better that the code handle the potential split operation by itself, w/out getting a fault for each mis-aligned access. - Davide - To unsubscribe from this list: send the line "unsubscribe linux-arch" in the body of a message to [EMAIL PROTECTED] More majordomo info at http://vger.kernel.org/majordomo-info.html
