Hi Saravana, > Can you try the patch at the end of this email under these > configurations and tell me which ones fail vs pass? I don't need logs I did these tests and here is the results: 1. On top of this series - Not works 2. Without this series - Works 3. On top of the series with the fwnode_dev_initialized() deleted - Not works 4. Without this series, with the fwnode_dev_initialized() deleted - Works So your nvmem/core.c patch helps only when it is applied without the series. But despite the fact that this helps to avoid getting stuck at probing my ethernet device, there is still regression. When the ethernet module is loaded it takes a lot of time to drop dependency from the nvmem-cell with mac address. Please look at the kernel logs below. The first log corresponds to kernel with your nvmem/core.c patch: [ 0.036462] ethernet@70000 Linked as a fwnode consumer to clock-gating-control@1821c [ 0.036572] ethernet@70000 Linked as a fwnode consumer to partition@1 [ 0.045596] device: 'f1070000.ethernet': device_add [ 0.045854] ethernet@70000 Dropping the fwnode link to clock-gating-control@1821c [ 0.114990] device: 'platform:f1010600.spi:m25p80@0:partitions:partition@1--platform:f1070000.ethernet': device_add [ 0.115266] devices_kset: Moving f1070000.ethernet to end of list [ 0.115308] platform f1070000.ethernet: Linked as a consumer to f1010600.spi:m25p80@0:partitions:partition@1 [ 0.115345] ethernet@70000 Dropping the fwnode link to partition@1 [ 1.968232] platform f1070000.ethernet: error -EPROBE_DEFER: supplier f1010600.spi:m25p80@0:partitions:partition@1 not ready [ 2.088696] devices_kset: Moving f1070000.ethernet to end of list [ 2.088988] platform f1070000.ethernet: error -EPROBE_DEFER: supplier f1010600.spi:m25p80@0:partitions:partition@1 not ready [ 2.152411] devices_kset: Moving f1070000.ethernet to end of list [ 2.152735] platform f1070000.ethernet: error -EPROBE_DEFER: supplier f1010600.spi:m25p80@0:partitions:partition@1 not ready [ 2.153870] devices_kset: Moving f1070000.ethernet to end of list [ 2.154152] platform f1070000.ethernet: error -EPROBE_DEFER: supplier f1010600.spi:m25p80@0:partitions:partition@1 not ready [ 2.644950] devices_kset: Moving f1070000.ethernet to end of list [ 2.645282] platform f1070000.ethernet: error -EPROBE_DEFER: supplier f1010600.spi:m25p80@0:partitions:partition@1 not ready [ 3.169218] devices_kset: Moving f1070000.ethernet to end of list [ 3.169506] platform f1070000.ethernet: error -EPROBE_DEFER: supplier f1010600.spi:m25p80@0:partitions:partition@1 not ready [ 3.170444] devices_kset: Moving f1070000.ethernet to end of list [ 3.170721] platform f1070000.ethernet: error -EPROBE_DEFER: supplier f1010600.spi:m25p80@0:partitions:partition@1 not ready [ 3.419068] devices_kset: Moving f1070000.ethernet to end of list [ 3.419359] platform f1070000.ethernet: error -EPROBE_DEFER: supplier f1010600.spi:m25p80@0:partitions:partition@1 not ready [ 3.521275] devices_kset: Moving f1070000.ethernet to end of list [ 3.521564] platform f1070000.ethernet: error -EPROBE_DEFER: supplier f1010600.spi:m25p80@0:partitions:partition@1 not ready [ 3.639196] devices_kset: Moving f1070000.ethernet to end of list [ 3.639532] platform f1070000.ethernet: error -EPROBE_DEFER: supplier f1010600.spi:m25p80@0:partitions:partition@1 not ready [ 13.960144] platform f1070000.ethernet: Relaxing link with f1010600.spi:m25p80@0:partitions:partition@1 [ 13.960260] devices_kset: Moving f1070000.ethernet to end of list [ 13.971735] device: 'eth0': device_add [ 13.974140] mvneta f1070000.ethernet eth0: Using device tree mac address de:fa:ce:db:ab:e1 [ 13.974275] mvneta f1070000.ethernet: Dropping the link to f1010600.spi:m25p80@0:partitions:partition@1 [ 13.974318] device: 'platform:f1010600.spi:m25p80@0:partitions:partition@1--platform:f1070000.ethernet': device_unregister It took around 13 seconds to obtain a mac from nvmem-cell and bring up f1070000.ethernet And here is the second log which corresponds to kernel without your nvmem/core.c patch but also with reverted change 'bcdf0315': [ 0.036285] ethernet@70000 Linked as a fwnode consumer to clock-gating-control@1821c [ 0.036395] ethernet@70000 Linked as a fwnode consumer to partition@1 [ 0.045416] device: 'f1070000.ethernet': device_add [ 0.045674] ethernet@70000 Dropping the fwnode link to clock-gating-control@1821c [ 0.116136] ethernet@70000 Dropping the fwnode link to partition@1 [ 1.977060] device: 'eth0': device_add [ 1.979145] mvneta f1070000.ethernet eth0: Using device tree mac address de:fa:ce:db:ab:e1 It took around 1.5 second to obtain a mac from nvmem-cell P.S. Your nvmem patch definitely helps to avoid a device probe stuck but look like it is not best way to solve a problem which we discussed in the MTD thread. P.P.S. Also I don't know why your nvmem-cell patch doesn't help when it was applied on top of this series. Maybe I missed something.