Index: uspace/drv/char/i8042/i8042.c
===================================================================
--- uspace/drv/char/i8042/i8042.c	(revision 2507d1fc493328f2b57cdb67cdef06a1db482a5e)
+++ uspace/drv/char/i8042/i8042.c	(revision cccdb8b7fc971c88fcc2364b88569bf8f5d0005c)
@@ -237,12 +237,13 @@
 	const size_t range_count = sizeof(i8042_ranges) /
 	    sizeof(irq_pio_range_t);
-	const size_t cmd_count = sizeof(i8042_cmds) / sizeof(irq_cmd_t);
 	irq_pio_range_t ranges[range_count];
-	irq_cmd_t cmds[cmd_count];
 	memcpy(ranges, i8042_ranges, sizeof(i8042_ranges));
 	ranges[0].base = (uintptr_t) regs;
+
+	const size_t cmd_count = sizeof(i8042_cmds) / sizeof(irq_cmd_t);
+	irq_cmd_t cmds[cmd_count];
 	memcpy(cmds, i8042_cmds, sizeof(i8042_cmds));
-	cmds[0].addr = (void *) &dev->regs->status;
-	cmds[3].addr = (void *) &dev->regs->data;
+	cmds[0].addr = (void *) &(((i8042_regs_t *) regs)->status);
+	cmds[3].addr = (void *) &(((i8042_regs_t *) regs)->data);
 
 	irq_code_t irq_code = {
