--- eciadsl-usermode-0.11/pusb-linux.c.orig 2007-11-24 23:05:42.000000000 +0100 +++ eciadsl-usermode-0.11/pusb-linux.c 2007-11-24 23:12:15.000000000 +0100 @@ -29,7 +29,6 @@ #include #include "pusb-linux.h" -#include struct pusb_endpoint_t { @@ -392,13 +391,18 @@ { struct usbdevfs_bulktransfer bulk; int ret, received = 0; + static long pagesize = 0; + + if (pagesize == 0) + pagesize = sysconf(_SC_PAGESIZE); + do { bulk.ep = ep; bulk.len = size; - if (bulk.len > PAGE_SIZE) - bulk.len = PAGE_SIZE; + if (size > pagesize) + bulk.len = pagesize; bulk.timeout = timeout; bulk.data = buf;