diff --git a/master/fsm_slave.c b/master/fsm_slave.c
index 29f20e09364e7a917e040b5692a7d3ec3d49e873..9da6c62f4d8c98b040fc1f627bdececd0adb66ff 100644
--- a/master/fsm_slave.c
+++ b/master/fsm_slave.c
@@ -427,8 +427,9 @@ alloc_eeprom:
     }
 
     if (!(slave->eeprom_data =
-          (uint8_t *) kmalloc(slave->eeprom_size, GFP_ATOMIC))) {
-        fsm->slave->error_flag = 1;
+                (uint8_t *) kmalloc(slave->eeprom_size, GFP_ATOMIC))) {
+        slave->eeprom_size = 0;
+        slave->error_flag = 1;
         fsm->state = ec_fsm_slave_state_error;
         EC_ERR("Failed to allocate EEPROM data on slave %i.\n",
                slave->ring_position);