diff --git a/master/fsm_master.c b/master/fsm_master.c
index ea7ccb2e7c9575a444df0dce8c838fad5f4914e9..2b73cdfc4960581c2d4d00e6bca979aaf5ad3ba3 100644
--- a/master/fsm_master.c
+++ b/master/fsm_master.c
@@ -183,7 +183,7 @@ void ec_fsm_master_state_broadcast(
         )
 {
     ec_datagram_t *datagram = fsm->datagram;
-    unsigned int i;
+    unsigned int i, size;
     ec_slave_t *slave;
     ec_master_t *master = fsm->master;
 
@@ -241,10 +241,10 @@ void ec_fsm_master_state_broadcast(
                 return;
             }
 
-            if (!(master->slaves = (ec_slave_t *)
-                        kmalloc(sizeof(ec_slave_t) * master->slave_count,
-                            GFP_KERNEL))) {
-                EC_ERR("Failed to allocate slave memory!\n");
+            size = sizeof(ec_slave_t) * master->slave_count;
+            if (!(master->slaves = (ec_slave_t *) kmalloc(size, GFP_KERNEL))) {
+                EC_ERR("Failed to allocate %u bytes of slave memory!\n",
+                        size);
                 master->slave_count = 0; // FIXME avoid scanning!
                 master->scan_busy = 0;
                 wake_up_interruptible(&master->scan_queue);