mtd: cfi_cmdset_0001: Support the absence of protection registers
[ Upstream commit b359ed51 ] The flash controller implemented by the Arm Base platform behaves like the Intel StrataFlash J3 device, but omits several features. In particular it doesn't implement a protection register, so "Number of Protection register fields" in the Primary Vendor-Specific Extended Query, is 0. The Intel StrataFlash J3 datasheet only lists 1 as a valid value for NumProtectionFields. It describes the field as: "Number of Protection register fields in JEDEC ID space. “00h,” indicates that 256 protection bytes are available" While a value of 0 may arguably not be architecturally valid, the driver's current behavior is certainly wrong: if NumProtectionFields is 0, read_pri_intelext() adds a negative value to the unsigned extra_size, and ends up in an infinite loop. Fix it by ignoring a NumProtectionFields of 0. Signed-off-by:Jean-Philippe Brucker <jean-philippe@linaro.org> Tested-by:
Sudeep Holla <sudeep.holla@arm.com> Tested-by:
Catalin Marinas <catalin.marinas@arm.com> Signed-off-by:
Vignesh Raghavendra <vigneshr@ti.com> Stable-dep-of: 565fe150 ("mtd: cfi_cmdset_0001: Byte swap OTP info") Signed-off-by:
Sasha Levin <sashal@kernel.org>
Loading
Please register or sign in to comment