Commit 8f0588e8 authored by Jonathan Lemon's avatar Jonathan Lemon Committed by Jakub Kicinski

ptp: ocp: handle error from nvmem_device_find

nvmem_device_find returns a valid pointer or IS_ERR().
Handle this properly.

Fixes: 0cfcdd1e ("ptp: ocp: add nvmem interface for accessing eeprom")
Signed-off-by: default avatarJonathan Lemon <jonathan.lemon@gmail.com>
Link: https://lore.kernel.org/r/20220329160354.4035-1-jonathan.lemon@gmail.comSigned-off-by: default avatarJakub Kicinski <kuba@kernel.org>
parent 866b7a27
...@@ -1214,10 +1214,9 @@ ptp_ocp_nvmem_device_get(struct ptp_ocp *bp, const void * const tag) ...@@ -1214,10 +1214,9 @@ ptp_ocp_nvmem_device_get(struct ptp_ocp *bp, const void * const tag)
static inline void static inline void
ptp_ocp_nvmem_device_put(struct nvmem_device **nvmemp) ptp_ocp_nvmem_device_put(struct nvmem_device **nvmemp)
{ {
if (*nvmemp != NULL) { if (!IS_ERR_OR_NULL(*nvmemp))
nvmem_device_put(*nvmemp); nvmem_device_put(*nvmemp);
*nvmemp = NULL; *nvmemp = NULL;
}
} }
static void static void
...@@ -1241,13 +1240,15 @@ ptp_ocp_read_eeprom(struct ptp_ocp *bp) ...@@ -1241,13 +1240,15 @@ ptp_ocp_read_eeprom(struct ptp_ocp *bp)
} }
if (!nvmem) { if (!nvmem) {
nvmem = ptp_ocp_nvmem_device_get(bp, tag); nvmem = ptp_ocp_nvmem_device_get(bp, tag);
if (!nvmem) if (IS_ERR(nvmem)) {
goto out; ret = PTR_ERR(nvmem);
goto fail;
}
} }
ret = nvmem_device_read(nvmem, map->off, map->len, ret = nvmem_device_read(nvmem, map->off, map->len,
BP_MAP_ENTRY_ADDR(bp, map)); BP_MAP_ENTRY_ADDR(bp, map));
if (ret != map->len) if (ret != map->len)
goto read_fail; goto fail;
} }
bp->has_eeprom_data = true; bp->has_eeprom_data = true;
...@@ -1256,7 +1257,7 @@ ptp_ocp_read_eeprom(struct ptp_ocp *bp) ...@@ -1256,7 +1257,7 @@ ptp_ocp_read_eeprom(struct ptp_ocp *bp)
ptp_ocp_nvmem_device_put(&nvmem); ptp_ocp_nvmem_device_put(&nvmem);
return; return;
read_fail: fail:
dev_err(&bp->pdev->dev, "could not read eeprom: %d\n", ret); dev_err(&bp->pdev->dev, "could not read eeprom: %d\n", ret);
goto out; goto out;
} }
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment