Index: uspace/srv/bd/hr/raid0.c
===================================================================
--- uspace/srv/bd/hr/raid0.c	(revision 1a60e645281c73de294a710aadd842ab59c68cb5)
+++ uspace/srv/bd/hr/raid0.c	(revision d092d2ce6327b5c0c5ae85911271c24bbc5bd011)
@@ -115,10 +115,12 @@
 
 static errno_t hr_raid0_bd_op(hr_bd_op_type_t type, bd_srv_t *bd, aoff64_t ba,
-    size_t cnt, void *data_read, const void *data_write, size_t size)
+    size_t cnt, void *dst, const void *src, size_t size)
 {
 	hr_volume_t *vol = bd->srvs->sarg;
 	errno_t rc;
-	uint64_t phys_block;
+	uint64_t phys_block, len;
 	size_t left;
+	const uint8_t *data_write = src;
+	uint8_t *data_read = dst;
 
 	/* propagate sync */
@@ -155,4 +157,5 @@
 		phys_block = ext_stripe * strip_size + strip_off;
 		cnt = min(left, strip_size - strip_off);
+		len = vol->bsize * cnt;
 		hr_add_ba_offset(vol, &phys_block);
 		switch (type) {
@@ -167,12 +170,10 @@
 			rc = block_read_direct(vol->extents[extent].svc_id,
 			    phys_block, cnt, data_read);
-			data_read = (void *) ((uintptr_t) data_read +
-			    (vol->bsize * cnt));
+			data_read += len;
 			break;
 		case HR_BD_WRITE:
 			rc = block_write_direct(vol->extents[extent].svc_id,
 			    phys_block, cnt, data_write);
-			data_write = (void *) ((uintptr_t) data_write +
-			    (vol->bsize * cnt));
+			data_write += len;
 			break;
 		default:
Index: uspace/srv/bd/hr/raid4.c
===================================================================
--- uspace/srv/bd/hr/raid4.c	(revision 1a60e645281c73de294a710aadd842ab59c68cb5)
+++ uspace/srv/bd/hr/raid4.c	(revision d092d2ce6327b5c0c5ae85911271c24bbc5bd011)
@@ -335,10 +335,12 @@
 
 static errno_t hr_raid4_bd_op(hr_bd_op_type_t type, bd_srv_t *bd, aoff64_t ba,
-    size_t cnt, void *data_read, const void *data_write, size_t size)
+    size_t cnt, void *dst, const void *src, size_t size)
 {
 	hr_volume_t *vol = bd->srvs->sarg;
 	errno_t rc;
-	uint64_t phys_block;
+	uint64_t phys_block, len;
 	size_t left;
+	const uint8_t *data_write = src;
+	uint8_t *data_read = dst;
 
 	/* propagate sync */
@@ -375,4 +377,5 @@
 		phys_block = ext_stripe * strip_size + strip_off;
 		cnt = min(left, strip_size - strip_off);
+		len = vol->bsize * cnt;
 		hr_add_ba_offset(vol, &phys_block);
 		switch (type) {
@@ -396,6 +399,5 @@
 				    phys_block, cnt, data_read);
 			}
-
-			data_read += vol->bsize * cnt;
+			data_read += len;
 			break;
 		case HR_BD_WRITE:
@@ -403,6 +405,5 @@
 			rc = hr_raid4_write(vol, extent, phys_block,
 			    data_write, cnt);
-
-			data_write += vol->bsize * cnt;
+			data_write += len;
 			break;
 		default:
@@ -427,8 +428,8 @@
 				 */
 				if (type == HR_BD_WRITE) {
-					data_write -= vol->bsize * cnt;
+					data_write -= len;
 					goto retry_write;
 				} else if (type == HR_BD_WRITE) {
-					data_read -= vol->bsize * cnt;
+					data_read -= len;
 					goto retry_read;
 				}
