diff --git a/drivers/block/umem.c b/drivers/block/umem.c
index 99806f9ee4ce85910deecfe194462b48cc047b35..5f5095afb06b900b3b70a05837b19d866a9cdd8a 100644
--- a/drivers/block/umem.c
+++ b/drivers/block/umem.c
@@ -484,7 +484,8 @@ static void process_page(unsigned long data)
 		page->idx++;
 		if (page->idx >= bio->bi_vcnt) {
 			page->bio = bio->bi_next;
-			page->idx = page->bio->bi_idx;
+			if (page->bio)
+				page->idx = page->bio->bi_idx;
 		}
 
 		pci_unmap_page(card->dev, desc->data_dma_handle,