Index: kernel/generic/src/console/klog.c
===================================================================
--- kernel/generic/src/console/klog.c	(revision 9201f474bc6e1a292f3bc7545adaad0ef1175b9b)
+++ kernel/generic/src/console/klog.c	(revision 263e1ec099c7943773adb288f2db953489a71583)
@@ -130,5 +130,5 @@
 			goto out;
 	}
-	ipc_irq_send_msg(&klog_irq, klogpos, ret, 0);
+	ipc_irq_send_msg_2(&klog_irq, klogpos, ret);
 	klogpos += ret;
 	if (klogpos >= klogsize)
Index: kernel/generic/src/ipc/irq.c
===================================================================
--- kernel/generic/src/ipc/irq.c	(revision 9201f474bc6e1a292f3bc7545adaad0ef1175b9b)
+++ kernel/generic/src/ipc/irq.c	(revision 263e1ec099c7943773adb288f2db953489a71583)
@@ -90,11 +90,14 @@
 			break;
 		case CMD_MEM_WRITE_2:
-			*((uint16_t *) code->cmds[i].addr) = code->cmds[i].value;
+			*((uint16_t *) code->cmds[i].addr) =
+			    code->cmds[i].value;
 			break;
 		case CMD_MEM_WRITE_4:
-			*((uint32_t *) code->cmds[i].addr) = code->cmds[i].value;
+			*((uint32_t *) code->cmds[i].addr) =
+			    code->cmds[i].value;
 			break;
 		case CMD_MEM_WRITE_8:
-			*((uint64_t *) code->cmds[i].addr) = code->cmds[i].value;
+			*((uint64_t *) code->cmds[i].addr) =
+			    code->cmds[i].value;
 			break;
 #if defined(ia32) || defined(amd64)
@@ -119,5 +122,6 @@
 			break;
 		}
-		if (code->cmds[i].dstarg && code->cmds[i].dstarg < 4) {
+		if (code->cmds[i].dstarg && code->cmds[i].dstarg <
+		    IPC_CALL_LEN) {
 			call->data.args[code->cmds[i].dstarg] = dstval;
 		}
@@ -283,6 +287,9 @@
  * @param a2		Driver-specific payload argument.
  * @param a3		Driver-specific payload argument.
- */
-void ipc_irq_send_msg(irq_t *irq, unative_t a1, unative_t a2, unative_t a3)
+ * @param a4		Driver-specific payload argument.
+ * @param a5		Driver-specific payload argument.
+ */
+void ipc_irq_send_msg(irq_t *irq, unative_t a1, unative_t a2, unative_t a3,
+    unative_t a4, unative_t a5)
 {
 	call_t *call;
@@ -301,4 +308,6 @@
 		IPC_SET_ARG2(call->data, a2);
 		IPC_SET_ARG3(call->data, a3);
+		IPC_SET_ARG4(call->data, a4);
+		IPC_SET_ARG5(call->data, a5);
 		/* Put a counter to the message */
 		call->priv = ++irq->notif_cfg.counter;
