Re: [PATCH v2] nvmem: layouts: onie-tlv: fix hang on unknown types
From: Srinivas Kandagatla
Date: Tue May 19 2026 - 11:23:11 EST
On 5/8/26 6:50 AM, Andre Heider wrote:
> The EEPROM on my board has a vendor specific entry of type 0x41. When
> stumbling upon that, this driver hangs in an endless loop.
>
> Fix it by keep incrementing the offset on unknown entries, so the loop
> will eventually stop.
>
> Fixes: d3c0d12f6474 ("nvmem: layouts: onie-tlv: Add new layout driver")
This needs Stable tag as well, Am applying this for now but, pl make
sure that a Stable tag is added to fixes next time.
--srini
> Signed-off-by: Andre Heider <a.heider@xxxxxxxxx>
> Reviewed-by: Miquel Raynal <miquel.raynal@xxxxxxxxxxx>
> ---
>
> Thanks for the quick review, Miquel!
>
> Added the Fixes: tag as requested, it dates back to the initial commit.
>
> Regards,
> Andre
>
> drivers/nvmem/layouts/onie-tlv.c | 3 ++-
> 1 file changed, 2 insertions(+), 1 deletion(-)
>
> diff --git a/drivers/nvmem/layouts/onie-tlv.c b/drivers/nvmem/layouts/onie-tlv.c
> index 0967a32319a28..8b0f3c1b8a0e9 100644
> --- a/drivers/nvmem/layouts/onie-tlv.c
> +++ b/drivers/nvmem/layouts/onie-tlv.c
> @@ -119,7 +119,7 @@ static int onie_tlv_add_cells(struct device *dev, struct nvmem_device *nvmem,
>
> cell.name = onie_tlv_cell_name(tlv.type);
> if (!cell.name)
> - continue;
> + goto next;
>
> cell.offset = hdr_len + offset + sizeof(tlv.type) + sizeof(tlv.len);
> cell.bytes = tlv.len;
> @@ -132,6 +132,7 @@ static int onie_tlv_add_cells(struct device *dev, struct nvmem_device *nvmem,
> return ret;
> }
>
> +next:
> offset += sizeof(tlv) + tlv.len;
> }
>