--- linux-2.6.23/arch/um/drivers/ubd_kern.c 2007-12-04 14:49:28.000000000 -0800 +++ new/arch/um/drivers/ubd_kern.c 2007-12-04 14:55:32.000000000 -0800 @@ -1069,6 +1069,12 @@ io_req->length = len; io_req->error = 0; io_req->sector_mask = 0; +/* At startup, the maximum .length is 64K, and blk_queue_max_sectors() + * has not been called yet. So do_io() could require 64K/(1<<9) = 128 bits: + * 32 in sector_mask, 64 in cow_offset, 32 in bitmap_words[0]. + * 2007-12-04 jreiser (valgrind/memcheck) + */ + io_req->bitmap_words[0] = 0; io_req->op = (rq_data_dir(req) == READ) ? UBD_READ : UBD_WRITE; io_req->offsets[0] = 0;