diff --git a/subsys/settings/src/settings_init.c b/subsys/settings/src/settings_init.c index e1d03c286fb..79641d1d8f5 100644 --- a/subsys/settings/src/settings_init.c +++ b/subsys/settings/src/settings_init.c @@ -80,7 +80,9 @@ int settings_backend_init(void) rc = flash_area_get_sectors(DT_FLASH_AREA_STORAGE_ID, &cnt, settings_fcb_area); - if (rc != 0 && rc != -ENOMEM) { + if (rc == -ENODEV) { + return rc; + } else if (rc != 0 && rc != -ENOMEM) { k_panic(); } diff --git a/subsys/storage/flash_map/flash_map.c b/subsys/storage/flash_map/flash_map.c index 28441f45196..9f3c9053b83 100644 --- a/subsys/storage/flash_map/flash_map.c +++ b/subsys/storage/flash_map/flash_map.c @@ -139,6 +139,9 @@ flash_page_cb cb, struct layout_data *cb_data) cb_data->status = 0; flash_dev = device_get_binding(fa->fa_dev_name); + if (flash_dev == NULL) { + return -ENODEV; + } flash_page_foreach(flash_dev, cb, cb_data);