>Any reason why the patch got a lot smaller?
>Used to be about 341000 bytes, now it's only 305000 odd bytes.

Every now and then I look at the patchfile content and notice some crud and remove it. In this case, it had some unnecessary ".orig" files in it.

>I can't think of much to make it more efficient..

How about removing the "copy_from_user()" and "memcpy()" calls from within that central loop.. looks pretty darned slow to me. Much better would be to just do one or two calls to those routines, and then have the loop unroll whatever it needs (if anything) without any slowish function calls inside the loop. Basic stuff.

Cheers