diff -Nru eciadsl-usermode-0.12.orig/pusb-linux.c eciadsl-usermode-0.12/pusb-linux.c --- eciadsl-usermode-0.12.orig/pusb-linux.c 2007-08-25 08:41:28.000000000 +0300 +++ eciadsl-usermode-0.12/pusb-linux.c 2007-08-25 08:42:27.000000000 +0300 @@ -29,7 +29,6 @@ #include #include "pusb-linux.h" -#include #include "pusb.h" @@ -430,16 +429,20 @@ { static struct usbdevfs_bulktransfer bulk; static int ret; + static long pagesize = 0; int received = 0; + if (pagesize == 0) + pagesize = sysconf(_SC_PAGESIZE); + do { bulk.ep = ep; bulk.len = size; - if (size > PAGE_SIZE) - bulk.len = PAGE_SIZE; + if (size > pagesize) + bulk.len = pagesize; bulk.timeout = timeout; bulk.data = buf;